Skip to content
This repository has been archived by the owner on Mar 8, 2024. It is now read-only.
/ SchoolManagement Public archive

A program for teachers to create and access student information in a database, and for students to access programming FAQ

License

Notifications You must be signed in to change notification settings

speckly/SchoolManagement

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 

Repository files navigation

About

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.

Date of completion: July/August 2020

Details

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

Author's note 2023

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)

Usage

Minimum requirement is python > 2.7 This is a single file project

python BUSINESS_MANAGEMENT.py

Security, data encryption - by Andrew Higgins (me)

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.

Initialization

initialization

Security

security

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

Sample decrypted data

search

Encrypted data after leaving function

encrypted

Known exploits
  • 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. (calling decryption() while in plain text will return the same plain text)

Chatbot - Member 2

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 chatbot

Database - Member 3/4

The database manages student information by creating, searching, amending and deleting

This is how data is created (using the same set of data in a single run)

create

There cannot be any duplicate students of the same class and index number create_lim

The data can be accessed later on

Refer to sample decrypted data for screenshot of searched data (unchanged)

About

A program for teachers to create and access student information in a database, and for students to access programming FAQ

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages