Skip to content

MilanTodorovic/LibraryProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LibraryProject

A simple program I wrote to use in my library.

About the program

Intro

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).

Structure

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

Purpose

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).

Updates

Version 1.3

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.

Version 1.4.5

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.

Version 1.5

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

Version 1.5 Hotfix

Fixed problems with multiprocessing (logging in and sending emails) and some minor code changes.

Version 1.5.6

Testing out the tix.Balloon and style feature. No important changes in the program itself.

Version 1.6.0

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.

Version 1.6.1

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.

Known issues

1. Logging in afterwards won't send emails.
FIXED: The session object couldn't be saved to a variable for unknown reasons
2. After getting the message, that all unsent emails were sent, the program crashes.
FIXED: I was using .quit() on Toplevel windows instead of .destroy()

TO DO

1. Enable saving unsent e-mails to a file/database in case of internet connection loss. (Partially done with 1.4.5)
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. Add tix.Balloon (hovering frame to display helpful information) (maybe i will add some more)
6. Break up big multitool functions in favour of smaller ones. (A lot of work.)
7. Add a custom icon to the window. (self.iconbitmap(self, default='icon.ico')

About

A simple program I wrote to use in my library.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages