A modern, interactive Learning Management System built with React and FastAPI, featuring a customizable dashboard for students and a comprehensive teacher interface.
- Draggable widgets for personalized layout
- Todo list for assignment tracking
- Calendar widget for upcoming events
- Progress tracking for different courses
- Class management system
- Document upload functionality
- Student enrollment tracking
- Course material organization
Before you begin, ensure you have the following installed:
- Python 3.8 or higher
- Node.js 14.0 or higher
- npm (usually comes with Node.js)
- A Supabase project (for the database)
- Clone the repository:
git clone https://github.com/sidharths00/chowder.git
cd chowder- Create and activate a Python virtual environment:
# For macOS/Linux
python3 -m venv backend/venv
source backend/venv/bin/activate
# For Windows
python -m venv backend/venv
backend\venv\Scripts\activate- Install backend dependencies:
cd backend
pip install -r requirements.txt- Create a
.envfile in the backend directory:
DATABASE_URL=your-supabase-db-url
JWT_SECRET=your-secret-key-here
JWT_ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30- Install frontend dependencies:
cd frontend
npm install- Create a
.envfile in the frontend directory:
REACT_APP_SUPABASE_URL=your-supabase-project-url
REACT_APP_PUBLIC_SUPABASE_KEY=your-supabase-anon-key- Activate the virtual environment (if not already activated):
# For macOS/Linux
source backend/venv/bin/activate
# For Windows
backend\venv\Scripts\activate- Start the FastAPI server:
cd backend
uvicorn src.main:app --reloadThe backend will be available at http://localhost:8000
- In a new terminal, navigate to the frontend directory:
cd frontend
npm startThe frontend will be available at http://localhost:3000
-
Access the student dashboard at http://localhost:3000/dashboard
- Drag and drop widgets to customize your layout
- Add and manage todos
- View upcoming events
- Track course progress
-
Access the teacher view at http://localhost:3000/teacher
- Create new classes
- Upload course materials
- Monitor student enrollment
- Access the API documentation at http://localhost:8000/docs
- Interactive API testing available at http://localhost:8000/redoc
- FastAPI (Python web framework)
- SQLAlchemy (Database ORM)
- Supabase (PostgreSQL database)
- Pydantic (Data validation)
- JWT (Authentication)
- React
- Material-UI
- React Router
- React Beautiful DnD (Drag and drop)
- React Grid Layout
- Framer Motion
- Supabase JS client
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
-
Port Already in Use
# Kill process using port 8000 (backend) lsof -ti:8000 | xargs kill -9 # Kill process using port 3000 (frontend) lsof -ti:3000 | xargs kill -9
-
Database Issues
- Verify your Supabase URL and keys in
frontend/.envandbackend/.env - Check your Supabase project dashboard for connection issues
- Verify your Supabase URL and keys in
-
Module Not Found Errors
- Make sure you're in the correct directory
- Ensure all dependencies are installed
- Check if virtual environment is activated for backend
For support, please open an issue in the GitHub repository or contact the maintainers.