No project description provided
Project description
Library Cubed
WARNING: LIBRARY CUBED IS STILL IN ALPHA
MANY IMPERATIVE SECURITY FEATURES SUCH AS NOT HASHING PASSWORDS HAVE NOT YET BEEN IMPLEMENTED
AT THE MOMENT, ONLY USE LIBRARY CUBED IN A PRIVATE SETTING FOR TESTING
DON'T ACTUALLY USE LIBRARY CUBED IN YOUR APPLICATION
(YOU HAVE BEEN WARNED...)
An updated, more secure version will be published later (Expected by end of August 20238)
Please email any bugs, suggestions, problems, etc to erlindsay2@gmail.com
Library Cubed is a python package, optimized for libraries to better manage and keep track of their books, run by blockchain.
Run the following to install Library Cubed:
pip install librarycubed
Then in your python file, add:
import librarycubed
Features:
- Customizable blockchain and creation system
- Backed by Proof of Authority (PoA) and hashing encryption
- Simple and easy-to-use
- Reminder system
- No crypto or digital wallet needed
Documentation
Initialization
For LC to work properly, a seperate database file must be created.
import librarycubed as lc
lc.init_list()
This only needs to be run once, you can delete this line of code after. You should see bcList.sqlite3
appear in your directory.
Do not delete the bcList.sqlite3
file or any other .sqlite3 files.
Use Blockchain.delete(filename)
to delete a blockchain, do not manually delete them
Create Your First Blockchain
import librarycubed as lc
lc.Blockchain.new(filename, name)
Notes:
- Filenames must end with .sqlite3
- Filename cannot be "bcList.sqlite3"
- The name does not need to be the same as the filename (e.g. if the filename is "hello.sqlite3", the name does not also have to be "hello")
- The same filename or name cannot be used twice
Admins
LC has two types of admins: Master Admin and Admin
The Master Admin has more power over other admins. This would be the boss, supervisor, CEO, etc of your company.
Admins can only verify blocks and view the blockchain.
Note that this system is likely to change in future updates
To initialize the Master Admin:
import librarycubed as lc
lc.init_list()
lc.Blockchain.new('bc.sqlite3','bc')
lc.Admin.Master.new('bc.sqlite3') # use the same filename to add the admin to the specific file
You should be prompted to enter the username and password in the terminal.
To create a new admin:
import librarycubed as lc
#lc.init_list()
#lc.Blockchain.new('bc.sqlite3','bc')
lc.Admin.new('bc.sqlite3') # use the same filename to add the admin to the specific file
You should be prompted to enter the username and password for the new admin in the terminal
Then you should be prompted to confirm by entering the Master Admin username and password
Add data
To create a new block, use Blockchain.insert_into(filename, format(borrower, book, type, dueDate))
import librarycubed as lc
lc.init_list()
lc.Blockchain.new('bc.sqlite3','bc')
lc.insert_into('bc.sqlite3', format("Bob","The Adventure Of Alex","borrow","07/06/2023"))
Notes:
- Due date must be in MM/DD/YYYY format; bugs and errors may occur
- The format function must be used.
- Blocks created with
insert_into()
will be found in "pending".
Verify blocks
To create verify pending blocks, use PoA(filename)
import librarycubed as lc
lc.init_list()
lc.Blockchain.new('bc.sqlite3','bc')
lc.insert_into('bc.sqlite3', format("Bob","The Adventure Of Alex","borrow","07/06/2023"))
lc.PoA('bc.sqlite3')
You should then be prompted to look at the block and check that it is valid. Then you must enter the username of an admin to confirm.
View data
To create verify pending blocks, use:
GetData.chain(filename, database type)
to view the entire chain, orGetData.block(filename, database type, block index)
to view a specific block in a chain, orGetData.chains()
to view a list of all the chains
import librarycubed as lc
lc.init_list()
lc.Blockchain.new('bc.sqlite3','bc')
lc.insert_into('bc.sqlite3', format("Bob","The Adventure Of Alex","borrow","07/06/2023"))
lc.GetData.chain('bc.sqlite3','pending')
Use 'pending' as database type when you want to look at unverified blocks Use 'blockchain' when you want to look at verified blocks in the blockchain Use 'admin' to view a list of admins
Note that the first block is block 1, not block 0.
Verify blocks
To create verify pending blocks, use PoA(filename)
import librarycubed as lc
lc.init_list()
lc.Blockchain.new('bc.sqlite3','bc')
lc.insert_into('bc.sqlite3', format("Bob","The Adventure Of Alex","borrow","07/06/2023"))
lc.PoA('bc.sqlite3')
The Check Functions
To create verify the hashes of your blockchain, use Check.hashes(filename)
To get a list of overdue borrows, use Check.returns(filename)
import librarycubed as lc
lc.init_list()
lc.Blockchain.new('bc.sqlite3','bc')
lc.insert_into('bc.sqlite3', format("Bob","The Adventure Of Alex","borrow","07/06/2023"))
lc.PoA('bc.sqlite3')
lc.Check.hashes('bc.sqlite3')
lc.Check.returns('bc.sqlite3')
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for librarycubed-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 81f454e5eea107b3dd29f0e2f33cd49f181ca77656af4cd66bebe8572cab4104 |
|
MD5 | 27dda5e13a78863eb241169cb6ce862e |
|
BLAKE2b-256 | 4e2efb811e614598a1ce9a9be607a4186cb2a0fe8823999f715502b3ed75101b |