Skip to content

A Python-based academic performance management app with a dynamic UI using Tkinter and ttkbootstrap. Features include secure SQLite storage, user authentication, real-time course info via SFU API, and Docker deployment for cross-platform compatibility.

Notifications You must be signed in to change notification settings

AndyZzzZzzZzz/ScholarSerpent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ScholarSerpent

ScholarSerpent is a Python-based academic performance management application. It provides users with a user-friendly interface to track course grades, calculate GPA, manage course components (e.g., assignments, exams), and store final grades. The application supports user registration, login, and password management using a local SQLite database.

Features

  • User Registration & Login: Secure login and registration system with password hashing.
  • Grade Calculator: Calculate course grades based on multiple components (assignments, exams, etc.).
  • GPA Calculation: Calculate GPA after entering final grades.
  • Password Management: Password reset functionality with secure SHA-256 password hashing.
  • Docker Support: Easily run the application in a Docker container.

Table of Contents

  1. Installation
  2. Running the Application
  3. Project Structure
  4. Docker Instructions
  5. Contributing
  6. License

Installation

Prerequisites

Ensure that you have the following installed on your system:

  • Python 3.8+
  • Docker (if you prefer to run in a Docker container)

Clone the Repository

git clone https://github.com/yourusername/scholarserpent.git
cd scholarserpent

Set Up a Virtual Environment

python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

Install Dependencies

Install the required Python packages using pip:

pip install -r requirements.txt

Running Locally

Once the dependencies are installed, run the application:

python ScholarSerpent.py

The GUI will launch, and you can start interacting with the grade calculator.

Running the Application

  1. Running the Application
  2. User Registration: Register a new user by entering a user ID and password.
  3. Login: Log in using your registered credentials.
  4. Grade Calculator: Navigate to the grade calculator to input your course grades, calculate GPA, and track progress.

Project Structure

/scholarserpent
│
├── /gui                 # GUI-related scripts
│   ├── grade_calculator.py   # Grade Calculator frame
│   ├── main_window.py        # Main window controller
│   ├── menu.py               # Menu interface
│   └── user_login.py         # Login frame
│
├── /database            # Database-related scripts
│   └── database.py          # SQLite database management
│
├── /assets              # Static assets like images and icons
│   └── incognito.png        # Example icon for user login
│
├── ScholarSerpent.py    # Main entry point for the application
├── Dockerfile           # Docker configuration file
├── requirements.txt     # Dependencies for the project
├── .gitignore           # Ignored files and directories
└── README.md            # Documentation for the repository

Docker Instructions

You can also run ScholarSerpent using Docker. The provided Dockerfile contains all the necessary instructions to set up the environment.

Build the Docker Image

From the project root, build the Docker image:

docker build -t scholarserpent-app .

Run the Docker Container

After building the image, run the application in a container:

docker run -p 5000:5000 scholarserpent-app

This will start the application inside a Docker container and expose it on port 5000.

Contributing

Contributions are welcome! To contribute:

  1. Fork the repository.
  2. Create a new branch (bash git checkout -b feature-branch ).
  3. Commit your changes (bash git commit -m 'Add new feature' ).
  4. Push to the branch (bash git push origin feature-branch ).
  5. Open a pull request.

About

A Python-based academic performance management app with a dynamic UI using Tkinter and ttkbootstrap. Features include secure SQLite storage, user authentication, real-time course info via SFU API, and Docker deployment for cross-platform compatibility.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published