A simple program I wrote to use in my library.
This program is written in Python 3.5.1 + Tkinter + Sqlite3 and uses Requests 2.10.0 and Beautifulsoup 4.4.1 as dependencies.It's my first real project in Python. The purpose was to learn more about Python and it's modules.
It is written solely for the purpose of my library (meaning some features won't apply to any other situation) and everything is in Serbian (comments are in English). The program cosists of a ttk.Notebook widget divided into multiple parts. It features many options such as storing students' information into tables, changing the very save information, searching and filtering of information in real-time (filtering while typing), sending E-mails and warning, if a book is overdue and many more.
Main.py - Main window and it's features
Sending.py - takes care of loggin into the email account and sending Emails
DataBase.py - Database stuff The purpose was to modernize the work at my library. Instead of the old-fashioned way of storing and working with data and students, this little program offers huge advantages.
I am extremely happy about teh fact, that it can send Emails through our local host and show a progressbar (which is a seperate process, using multiprocessing and queues) of the number of sent Emails.
It has a big number of error checking and prevention from breaking (mostly by the user). Some radical changes in the structure of the Main.py file. The Window class broken down into multiple classes, each for every individual ttk.Notebook frame. This might result in some bugs, but I hope it won't. Added a mechanism to store unsend Emails in case of connection issues or something similar.
Not all Emails can be stored and some fucntions don't work. Changes:
1. Some SQLite queries and Table schemes
2. New functions that store and send unsent Emails (due to connection loss, etc.)
3. Toplevel window with progressbar for sending out previously unsent Emails
4. Slight changes in some parts of the code
Fixed problems with multiprocessing (logging in and sending emails) and some minor code changes. Testing out the tix.Balloon and style feature. No important changes in the program itself. 1. Fixed major bugs.
2. Added a new Toplevel window to display user information of the selected user in the treeview.
3. Changed some functions in the DataBase file. Broke up some multitool functions in favour of smaller and more specialized ones.
4. Small layout changes. More planned. 1. Added a seperate window to manually enter the generation indicator of a students index number.
2. Split some functions in the DataBase file to make it more readable.
3. Some other minor changes which don't have any impact to the program itself.
1.
FIXED: The session object couldn't be saved to a variable for unknown reasons
2.
FIXED: I was using .quit() on Toplevel windows instead of .destroy() 1.
2. Changes in variable names. (Make them more readable and informative)
3. Some changes to the structure of the code and maybe some more features.
4. Add a log. (Either as a seperate window and as a .txt file)
5.
6. Break up big multitool functions in favour of smaller ones. (A lot of work.)
7.