Skip to content

rikhil-amonkar/dragonflow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DragonFlow

DragonFlow is a student success planner built for Drexel University students. It optimizes academic planning through personalized course recommendations, schedule building, and success metrics tailored to your major, GPA, and preferences. You can explore courses, see professor ratings, predict your likelihood of success, and plan terms with CO-OP in mind—all in one place.

Key Features

  • Smart Course Planning: Personalized recommendations, major requirement tracking, CO-OP integration, conflict detection
  • Success Metrics: Course success prediction, GPA projections, workload analysis, term balance
  • Professor Insights: Rating integration, teaching style, historical grade distributions

Tech Stack

  • Backend: Python Flask, SQLAlchemy, Flask-Login, Flask-JWT-Extended
  • Frontend: Svelte 5, TypeScript, DaisyUI, Shadcn-UI
  • Validation: Marshmallow

Contributors

Contributor Role
Rikhil Amonkar Product Owner; ML model; Frontend visualization
Andrey Barriga Full stack; design & API routing; database models; authentication
Matt Bunkin Full stack; auth; RMP API integration; course filtering
Soumil Patel Frontend & styling

Developed for Drexel University's CI 102 and 103 course sequence.


How to Run

Prerequisites

  • Node.js (for frontend)
  • Python 3.11+ (for backend)
  • PostgreSQL
  • npm

1. Backend

cd backend
python -m venv venv
source venv/bin/activate   # Windows: venv\Scripts\activate
pip install -r requirements.txt

Copy backend/.env.example to backend/.env and set:

  • DATABASE_URL – PostgreSQL connection string (e.g. postgresql://user:password@localhost:5432/dragonflow)
  • DATA_FILE – Path to scripts/course_data.json (default: scripts/course_data.json)
  • SECRET_KEY – Flask session secret (use a long random string)
  • JWT_SECRET_KEY – JWT signing secret (use a long random string)

Generate secrets: python -c "import secrets; print(secrets.token_hex(32))"

Create the DB and run migrations:

createdb dragonflow
export FLASK_APP=run.py
flask db upgrade

Start the backend:

python run.py

Backend runs at http://127.0.0.1:5000.

2. Frontend

# From project root
npm install
npm run dev

Frontend runs at http://localhost:5173. Use that URL in the browser.

3. Run Both

Keep the backend terminal open with python run.py, and in a second terminal run npm run dev from the project root. The app talks to the API at http://127.0.0.1:5000 by default. Override with VITE_API_URL in a root .env if needed.


Security

  • Never commit backend/.env. Use backend/.env.example as a template.
  • Keep SECRET_KEY and JWT_SECRET_KEY long, random, and private.
  • Use strong DATABASE_URL credentials in production.

Timeline

  • Early January 2025 — First planning
  • Jan 22, 2025 — First GitHub commit
  • May 15, 2025 — Last commit (course sequence)
  • Jan 25, 2026 — Newest updates (cleanup, security, docs)

About

Student success planner for Drexel: course recommendations, schedule building, success metrics, and professor insights—all in one app.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors