Skip to content

Latest commit

 

History

94 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chowder

A modern, interactive Learning Management System built with React and FastAPI, featuring a customizable dashboard for students and a comprehensive teacher interface.

Features

Student Dashboard

  • Draggable widgets for personalized layout
  • Todo list for assignment tracking
  • Calendar widget for upcoming events
  • Progress tracking for different courses

Teacher Interface

  • Class management system
  • Document upload functionality
  • Student enrollment tracking
  • Course material organization

Prerequisites

Before you begin, ensure you have the following installed:

  1. Python 3.8 or higher
  2. Node.js 14.0 or higher
  3. npm (usually comes with Node.js)
  4. A Supabase project (for the database)

Installation

Backend Setup

  1. Clone the repository:
git clone https://github.com/sidharths00/chowder.git
cd chowder
  1. 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
  1. Install backend dependencies:
cd backend
pip install -r requirements.txt
  1. Create a .env file in the backend directory:
DATABASE_URL=your-supabase-db-url
JWT_SECRET=your-secret-key-here
JWT_ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30

Frontend Setup

  1. Install frontend dependencies:
cd frontend
npm install
  1. Create a .env file in the frontend directory:
REACT_APP_SUPABASE_URL=your-supabase-project-url
REACT_APP_PUBLIC_SUPABASE_KEY=your-supabase-anon-key

Running the Application

Start the Backend Server

  1. Activate the virtual environment (if not already activated):
# For macOS/Linux
source backend/venv/bin/activate

# For Windows
backend\venv\Scripts\activate
  1. Start the FastAPI server:
cd backend
uvicorn src.main:app --reload

The backend will be available at http://localhost:8000

Start the Frontend Server

  1. In a new terminal, navigate to the frontend directory:
cd frontend
npm start

The frontend will be available at http://localhost:3000

Usage

  1. 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
  2. Access the teacher view at http://localhost:3000/teacher

    • Create new classes
    • Upload course materials
    • Monitor student enrollment

API Documentation

Tech Stack

Backend

  • FastAPI (Python web framework)
  • SQLAlchemy (Database ORM)
  • Supabase (PostgreSQL database)
  • Pydantic (Data validation)
  • JWT (Authentication)

Frontend

  • React
  • Material-UI
  • React Router
  • React Beautiful DnD (Drag and drop)
  • React Grid Layout
  • Framer Motion
  • Supabase JS client

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Troubleshooting

Common Issues

  1. 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
  2. Database Issues

    • Verify your Supabase URL and keys in frontend/.env and backend/.env
    • Check your Supabase project dashboard for connection issues
  3. 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

Support

For support, please open an issue in the GitHub repository or contact the maintainers.

About

Chowder app

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages