Syllabud is an intelligent course generation platform that creates personalized learning paths based on your learning style and preferences. Powered by Google's Gemini AI, it generates comprehensive courses tailored to how you learn best. Learn What Matters.
- Personalized Learning Profiles - Select your learning style (Visual, Auditory, Read/Write, Kinesthetic) and describe your preferences
- AI-Generated Courses - Get custom course content with prerequisites, curriculum, and curated resources
- Depth Control - Choose course complexity from beginner (1) to expert (10)
- User Accounts - Secure authentication with course history saved to your profile
- Adaptive Resources - Resource recommendations tailored to your learning style
Frontend
- React 19
- Vite
- React Router
- Styled Components
Backend
- FastAPI (Python)
- SQLAlchemy + SQLite
- JWT Authentication
- Google Gemini AI
- Node.js 18+
- Python 3.11+
- Google Gemini API Key (Get one here)
-
Clone the repository
git clone <repository-url> cd Syllabud
-
Set up the backend
cd BackEnd python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -r requirements.txt
-
Configure environment variables
Create
BackEnd/.env:GEMINI_API_KEY=your-api-key-here -
Set up the frontend
cd FrontEnd npm install
-
Start the backend (from
BackEnd/directory)uvicorn main:backendApp --reload --port 8000
-
Start the frontend (from
FrontEnd/directory)npm run dev
-
Open the app
Navigate to
http://localhost:5173
- Create an account - Register with username, email, and password
- Set preferences - Choose your learning style and describe how you learn best
- Create a course - Enter a topic and select depth level
- Learn - View your personalized course with curated resources
Syllabud/
├── BackEnd/
│ ├── main.py # FastAPI application
│ ├── database.py # SQLAlchemy setup
│ ├── models.py # Database models
│ ├── auth.py # Authentication utilities
│ ├── routes/
│ │ ├── auth_routes.py # Auth endpoints
│ │ └── course_routes.py # Course CRUD + Gemini integration
│ └── .env # Environment variables (create this)
├── FrontEnd/
│ ├── src/
│ │ ├── pages/ # Page components
│ │ ├── components/ # Reusable components
│ │ └── contexts/ # React contexts
│ └── package.json
└── TextFiles/
└── structure.txt # Course template
POST /auth/register- Create accountPOST /auth/login- Get access tokenGET /auth/me- Get current userPUT /auth/preferences- Update learning preferences
POST /courses- Generate new courseGET /courses- List user's coursesGET /courses/{id}- Get course detailsDELETE /courses/{id}- Delete course
MIT