Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/matheusafonseca/s202-grade-manager
Repository dedicated to storing the S202 - Database II project where a grading system is made using a non-relational database.
https://github.com/matheusafonseca/s202-grade-manager
black database flake8 isort neo4j python streamlit
Last synced: 14 days ago
JSON representation
Repository dedicated to storing the S202 - Database II project where a grading system is made using a non-relational database.
- Host: GitHub
- URL: https://github.com/matheusafonseca/s202-grade-manager
- Owner: matheusAFONSECA
- License: mit
- Created: 2024-11-11T22:46:15.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-11-21T01:39:17.000Z (2 months ago)
- Last Synced: 2024-11-21T02:27:17.107Z (2 months ago)
- Topics: black, database, flake8, isort, neo4j, python, streamlit
- Homepage:
- Size: 40 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# S202-grade-manager
Repository dedicated to storing the S202 - Database II project where a grading system is made using a non-relational database.## Index
### [1. Class Diagram](#class-diagram)
- [Class Relationships](#class-diagram)### [2. Usage](#usage)
- [Install the requirements](#install-the-requirements)
- [Create a env file](#create-a-env-file)
- [Run the project](#run-the-project)### [3. Code Quality](#code-quality)
- [Linter](#linter)
- [Formatter](#formatter)
- [Sorting Imports](#sorting-imports)### [4. Contributors](#contributors)
- [Matheus Fonseca](#matheus-fonseca)
- [Pedro Luis Dionísio Fraga](#pedro-luis-dionísio-fraga)## Class Diagram
```mermaid
classDiagram
class Student {
+int registration_number
+string course
+string name
}class Teacher {
+int teacher_id
+string name
}class Subject {
+string subject_id
+string name
+int teacher_id
}class Grade {
+int grade_id
+float obtained_grade
+string subject_id
+int teacher_id
}Student "1" --> "0..*" Grade: Receives
Teacher "1" --> "0..*" Subject: Teaches
Student "1..*" --> "1" Teacher: Is_taught_by
Student "1..*" --> "1..*" Subject: Studies
```## Usage
### Install the requirements
Install the requirements:
```bash
pip install -r requirements.txt
```> (OPTIONAL) If you will develop, install the CI requirements:
> ```bash
> pip install -r ci_requirements.txt
> ```### Create a `.env` file
Create a `.env` file running the following script:
- UNIX/Mac
```bash
./scripts/create_env.sh
```
- Windows
```bash
./scripts/create_env.bat
```
> Remember: Edit the `.env` file with your neo4j sandbox credentials, provided when you create an account or new project.### Run the project
- Running via terminal:
```bash
streamlit run .\src\main.py
```- Running using docker:
```bash
docker compose build
docker compose up
```In the Neo4j Sandbox you can see the data and relationships created by the program:
`Example of relations of the database: `
![app_example](docs/app_example.png)
## Code Quality
### Linter
A linter that checks for syntax errors, potential bugs, and style violations.\
The project uses [flake8](https://flake8.pycqa.org/en/latest/) as linter. To run the linter all code, execute the following command:```bash
flake8 .
```If the linter find a problem, it will show a message with the error.
```bash
./src/example.py:13:3: E303 too many blank lines (2)
./src/example.py:20:1: W391 blank line at end of file
```Fixing the error manually and when finish, flake8 will not show any message.
### Formatter
The project uses [black](https://black.readthedocs.io/en/stable/) as formatter. To run the formatter in all code, execute the following command:
```bash
black .
```### Sorting Imports
The project uses [isort](https://pycqa.github.io/isort/) as sorting imports. To run the sorting imports in all code, execute the following command:
```bash
isort .
```## Contributors
### [Matheus Fonseca](https://github.com/matheusAFONSECA)
Undergraduate student in the eighth (8th) semester of Computer Engineering at the National Institute of Telecommunications (Inatel). I participated in a Scientific Initiation at the Cybersecurity and Internet of Things Laboratory (CS&ILAB), where, in the Park Here project, I developed skills in computer vision applied to parking systems, focusing on license plate recognition and vehicle identification. Additionally, I served as a teaching assistant for Physics 1, 2, and 3, helping with practical classes, report writing, and answering theoretical questions. Currently, I am an intern at the Inatel Competence Center (ICC) in the PDI SW department.
### [Pedro Luis Dionísio Fraga](https://github.com/PedroLuisDionisioFraga)
I am a Computer Engineering student at Inatel, graduating in 2025, with expertise in Embedded Linux, firmware development, and C/C++ programming, complemented by Python skills. Since October 2023, I have been a firmware developer at Nouvenn IoT, creating and implementing innovative IoT solutions. Additionally, I have been a laboratory monitor at Inatel since August 2022, providing technical and educational support to students. I am passionate about embracing challenges and contributing to impactful technology projects.