Welcome to the GenEd-CMUQ repository! This project is designed to create a website support CMUQ faculty analyze and plan courses that fulfill requirements across the four majors at CMU-Q . The repo includes backend data processing, database management, backend, analytics and a frontend interface.
app/→ Contains the core backend logic, including:main.py→ Entry point for the backend API.
scripts/→ Contains utility scripts for extracting and populating data.extract_audit_data.py→ Extracts audit requirements from JSON files.extract_course_data.py→ Extracts course data from structured JSON files.extract_enrollment_data.py→ Extracts enrollment data.populate_courses.py→ Populates the database with course data (in progress).
tests/→ Contains unit tests for backend functionality.
audit/→ Degree audit JSON files + excels corresponding to the tables in the ERD..course/→ Course metadata stored as JSON files + + excels corresponding to the tables in the ERD..enrollment/→ Original Enrollment dataset provided by Jarrin+ excels corresponding to the tables in the ERD.
migrations/→ Migration files for database schema changes.gened.db→ The PostgreSQL database file.database.py→ Manages database connections and schema.models.py→ Defines database models using SQLAlchemy.schemas.py→ Defines Pydantic schemas for data validation.
public/→ Static assets for the frontend (in progress).src/→ Source code for frontend components (in peogress).
predict_next_sem.py→ A script for predicting course demand for the next semester.
Before making any changes, create a new branch based on the feature or fix you are working on:
git checkout -b feature-name
## 📝 Examples
```bash
git checkout -b add-enrollment-prediction-model
git checkout -b add-front-end-compenentsFollow a structured commit message format:
git commit -m "Fix: Improved course extraction logic"- Feat: for new features
- Fix: for bug fixes
- Refactor: for code improvements
- Docs: for documentation updates
Once changes are committed, push the branch:
git push origin feature-name- Open a Pull Request (PR) on GitHub.
- Add Boushra Bendou and the other team member as reviewers.
- Provide a clear description of what changes were made.
- Ensure that tests pass before requesting a merge.
- At least one reviewer must approve the PR before merging.
- After approval, merge the branch using the GitHub UI.
- 🚨 Never push directly to
main! Always use branches and PRs.
If your branch is behind main, update it before merging:
git checkout main
git pull origin main
git checkout feature-name
git merge main✔ Keep code modular and well-documented.
✔ Follow consistent naming conventions.
✔ Use environment variables for sensitive data.
✔ Run tests before pushing code.
✔ Write meaningful commit messages.