Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/appleboiy/pre3
Newer version of 'Prerequisite-tree-dagreD3'
https://github.com/appleboiy/pre3
prerequisite-tree
Last synced: 17 days ago
JSON representation
Newer version of 'Prerequisite-tree-dagreD3'
- Host: GitHub
- URL: https://github.com/appleboiy/pre3
- Owner: AppleBoiy
- License: mit
- Created: 2023-10-14T14:26:44.000Z (about 1 year ago)
- Default Branch: feat
- Last Pushed: 2024-05-21T07:51:42.000Z (8 months ago)
- Last Synced: 2024-12-19T02:38:42.483Z (17 days ago)
- Topics: prerequisite-tree
- Language: CSS
- Homepage: https://cmu.to/cs-prerequisite-tree
- Size: 84.7 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: .github/SECURITY.md
Awesome Lists containing this project
README
# Pre3
Pre3 is a `course management system` that will help a academic institution to manage their courses, students, and faculty. It will also help students to plan their courses and track their progress.
⚠️⚠️⚠️ DISCLAIMER ⚠️⚠️⚠️
To build this application, we relied on a variety of sources and references.
For a detailed list, please refer to the
REFERENCES file.
## Features
Pre3 is playing with a role of user, No matter if you are a `student`, `instructor`, or `admin`. Pre3 will help you to manage your courses, students, and faculty.
### ROLE
Role is a key feature of Pre3. Each user will have a role. Role will help Pre3 to understand the user and provide the features accordingly.
> ***NOTE*** Each role holds a set of permissions. Permissions are the key to access the features. and each role will not have rights to access the features which are not allowed by the permissions.
- GUEST: A user who is not logged in.
- ADMIN: A special user who can manage the whole system.
- STUDENT: A user who is a student. They can manage their courses and track their learning progress and plan their courses with visual representation of the course tree.
- Lecturer: A user who is an lecturer. They can manage their courses and students. They can also track the progress of their students.### Prerequisite Tree
Pre3 will provide a visual representation of the course tree. It will help students to plan their courses and track their progress.
> **NOTE** `THIS FEATURE IS CURRENTLY UNDER DEVELOPMENT`
### Course Management
Pre3 will provide a feature to manage the courses. Admin can manage the courses and students. They can also track the progress of their students.
> **NOTE** `THIS FEATURE IS CURRENTLY UNDER DEVELOPMENT`
## Technologies
### Frontend
1. Bootstrap 5 as a CSS framework
2. JavaScript
3. SB Admin 2 as a dashboard template### Backend
1. Flask as a web framework
2. DJango as a backend framework
3. Jinja2 as a templating engine
3. Gunicorn as a WSGI server
4. PostgresSQL as a database
5. SQLAlchemy as an ORM
6. Flask-Login for user authentication
7. Flask-WTF for form handling and validation
8. SheetJS for handling the excel files and converting them into JSON### Deployment
1. Docker for containerization
### SERVICES
1. Google Sheets API for handling the course data
2. Google SSO for user authentication## Installation
### Prerequisites
- Python 3.8 or higher
- Docker
- Google Sheets API Key
- Google SSO Key
- PostgresSQL
- Make### Steps
1. Clone the repository
```bash
git clone [email protected]:AppleBoiy/pre3.git
```2. build the docker image using `Makefile`
```bash
make build
```This will build the docker image and create a container for the application.
localhost:56733 -> 80 is the port for the application
localhost:5432 -> 5432 is the port for the database3. Seed the database
```bash
make seed-d
```This will seed the database with the initial data.
## Usage
### Development
The application is running on the `localhost:56733` and the database is running on the `localhost:5432`.
#### Set of commands
There are a set of commands that you can use to manage the application.
- `make build` -> Build the docker image
- `make create-db` -> Create the database
- `make seed-db` -> Seed the database
- `make drop-db` -> Drop the database
- `make remote-dk` -> remote to the remote docker container
- `make remote-db` -> remote to the remote databaseand many more. you can check the `Makefile` for more commands.
---
Get help: [Post in our discussion board](https://github.com/AppleBoiy/pre3/discussions) • [Review the GitHub status page](https://www.githubstatus.com/)
© 2023 AppleBoiy • [Code of Conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/code_of_conduct.md) • [MIT License](LICENSE)