This README is written by Andrew Higgins
SchoolManagement is a command line program developed by 4 first-year GCE Ordinary Level Computing students for teachers to create and access student information in a database, and for students to access programming FAQ.
This program utilizes a UTF-8 .txt file for the creation of student information or for accessing a student's information while being able to amend or delete it. Access to the database requires a passcode, to prevent unauthorized access. The text file is also encrypted using 3 steps. (String indexing, Base64 encoding, Caesar's cipher or ASCII code shifting) The text file is decrypted into plain text while an authorized user is using the program A student FAQ is included to answer student FAQs on Python, this feature does not require any authentication
There is so much bad code and unnecessary screaming comments as loud as SQL. I want to preserve this code just so that I can remember the time I was learning software development and managing other people in such projects. Also, I did not know anything about cryptography back then. So much for me being proud of my "unbreakable" encryption because it had 3 layers of ciphers (one transposition where key is obvious, one encoding cipher, one classical cipher... ok)
Minimum requirement is python > 2.7 This is a single file project
python BUSINESS_MANAGEMENT.py
A security passcode is required to be set should the program be used for the first time (case when file does not exist) A security question is also required to be set during this initialization which is needed to be answered in the event the authenticated user forgets their password
The security passcode is prompted for every instance a user accesses the database.
The decryption function will be called to convert the database into plain text when the user is authenticated successfully The encryption function will be called when the user exits a function in the database
- The text file is not stored in a secure location, it can be deleted by an intruder. The intruder can also set a new password without authorization.
- Any interrupts before
encryption()
is called might expose database information in plain text. (callingdecryption()
while in plain text will return the same plain text)
The chatbot will print out a menu that students can navigate to find their FAQ section The chatbot will answer the questions students have on programming based on keywords from their input
The database manages student information by creating, searching, amending and deleting
There cannot be any duplicate students of the same class and index number
The data can be accessed later on