https://github.com/dimplektech/student_manager_application
https://github.com/dimplektech/student_manager_application
Last synced: 11 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/dimplektech/student_manager_application
- Owner: Dimplektech
- Created: 2024-06-18T18:25:38.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-18T19:46:01.000Z (about 2 years ago)
- Last Synced: 2025-03-25T09:31:14.275Z (over 1 year ago)
- Language: Python
- Size: 30.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Student_Manager_Application
## Description
The Student Manager Application is a command-line tool for managing student records, including their personal details and grades. It allows users to view, add, update, and delete student information.
## Features
- View all students
- Add a new student
- Update student information (email, phone number, and grades)
- Delete a student
- Parse and validate dates
## Technologies Used
- Python 3.7+
- SQLAlchemy (ORM for database interaction)
- SQLite (default database, configurable)
- Unittest
## Installation
1. **Clone the repository**:
```bash
git clone [https://github.com/your-username/student-manager.git](https://github.com/Dimplektech/Student_Manager_Application.git)
cd student-manager
```
2. **Create a virtual environment**:
```bash
python -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`
```
3. **Install the required packages**:
```bash
pip install -r requirements.txt
```
4. **Configure the database settings**:
- Create a `settings.py` file in the project root with the following content:
```python
DB_ADDRESS = 'sqlite:///my_db.db' # Update with your database URL if using a different database
```
5. **Initialize the database**:
- Run the following command to create the database tables:
```bash
python init_db.py
```
## Usage
1. **Run the application**:
```bash
python main.py
```
2. **Follow the on-screen menu to manage students**.
## Project Structure
- `main.py`: Entry point of the application
- `student_manager.py`: Contains the `StudentManager` class for handling database operations
- `models.py`: Defines the database models (`Student` and `Grade`)
- `settings.py`: Configuration file for database settings
- `utils.py`: Utility functions (e.g., for drawing lines in the menu, for checking Date format)
- `requirements.txt`: List of required Python packages
## Models
### Student
- `id` (int): Primary key
- `name` (str): First name
- `surname` (str): Last name
- `date_of_birth` (date): Date of birth
- `email` (str): Email address
- `phone_number` (str): Phone number
- `grades` (relationship): List of grades associated with the student
### Grade
- `id` (int): Primary key
- `student_id` (int): Foreign key referring to the `Student` model
- `subject` (str): Subject name
- `grades` (int): Grade score
## Contributing
1. Fork the repository
2. Create a new branch (`git checkout -b feature-branch`)
3. Make your changes
4. Commit your changes (`git commit -am 'Add new feature'`)
5. Push to the branch (`git push origin feature-branch`)
6. Create a new Pull Request
## Acknowledgements
- [SQLAlchemy](https://www.sqlalchemy.org/) for the ORM
- [SQLite](https://www.sqlite.org/) for the database
## Contact
### Dimpal Kaware (https://github.com/Dimplektech)