Skip to content

sidharths00/chowder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6