Thanks to visit codestin.com
Credit goes to github.com

Skip to content

CourseWagon is a web application designed to streamline course management and subject generation using Generative AI. This Angular application interacts with a FastAPI backend to manage courses, subjects, modules, chapters, topics, subtopics, and their respective content.

License

Notifications You must be signed in to change notification settings

Uttam-Mahata/coursewagon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

CourseWagon

CourseWagon is an enterprise-grade educational platform that leverages generative AI to facilitate dynamic course content generation and comprehensive learning management. The platform integrates modern web technologies with advanced AI capabilities to deliver a scalable, secure, and user-centric educational experience.

Features

  • AI-Powered Content Generation: Automatically generate course subjects, chapters, topics, and detailed content using Google Gemini AI
  • Comprehensive Course Management: Create and organize courses with hierarchical structure (Courses Subjects Chapters Topics Content)
  • Real-time Authentication: Secure user authentication with Firebase Auth and JWT tokens
  • Cloud Storage Integration: Store images and media using Azure Blob Storage and Firebase Storage
  • Responsive UI: Modern, responsive interface built with Angular 19 and Tailwind CSS
  • Admin Dashboard: Comprehensive admin panel for managing users, courses, and testimonials
  • Mathematical Content Support: Render mathematical equations using KaTeX and MathJax
  • Diagram Support: Create and display diagrams using Mermaid.js
  • Email Notifications: Automated email system for password resets and user notifications

Tech Stack

Frontend

  • Framework: Angular 19
  • Styling: Tailwind CSS 4.1
  • Authentication: Firebase Auth
  • Markdown: ngx-markdown with Prism.js syntax highlighting
  • Math Rendering: KaTeX, MathJax
  • Diagrams: Mermaid.js
  • Icons: Font Awesome

Backend

  • Framework: FastAPI (Python)
  • Database: MySQL with SQLAlchemy ORM
  • AI Integration: Google Gemini AI
  • Storage: Azure Blob Storage, Firebase Storage
  • Authentication: JWT tokens with Firebase Admin SDK
  • Email Service: Mailgun
  • Deployment: Google Cloud Run / Microsoft Azure

Project Structure

coursewagon/
 angular-client/          # Frontend Angular application
    src/
       app/            # Angular components and services
       environments/   # Environment configurations
       styles.css      # Global styles
    package.json        # Frontend dependencies
    angular.json        # Angular configuration

 python-server/          # Backend FastAPI application
    app.py             # Main FastAPI application
    models/            # Database models
    routes/            # API endpoints
    services/          # Business logic
    repositories/      # Data access layer
    utils/             # Helper utilities
    migrations/        # Database migrations
    requirements.txt   # Backend dependencies

 CLAUDE.md              # AI assistant instructions
 .env.example           # Environment variables template

Getting Started

Prerequisites

  • Node.js (v18 or higher)
  • Python 3.10+
  • MySQL database
  • Firebase project (for authentication)
  • Azure Storage account (optional)
  • Google Gemini API key

Frontend Setup

# Navigate to frontend directory
cd angular-client

# Install dependencies
npm install

# Configure environment variables
# Edit src/environments/environment.ts with your API endpoints

# Run development server
npm start

The application will be available at http://localhost:4200

Backend Setup

# Navigate to backend directory
cd python-server

# Install uv package manager (recommended)
pip install uv

# Install dependencies
uv pip install -r requirements.txt

# Copy and configure environment variables
cp .env.example .env
# Edit .env with your configuration

# Run development server
uvicorn app:app --reload

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

=' Configuration

Environment Variables

Copy .env.example to .env in the python-server directory and configure:

  • Database: MySQL connection details
  • API Keys: Gemini AI, Firebase, Azure Storage
  • JWT: Secret keys and token expiration
  • Email: Mailgun configuration
  • Storage: Azure Blob Storage credentials

Firebase Setup

  1. Create a Firebase project
  2. Enable Authentication
  3. Download service account credentials
  4. Place in python-server/utils/
  5. Update Firebase configuration in Angular app

API Documentation

Once the backend is running, access the interactive API documentation at:

  • Swagger UI: http://localhost:8000/docs
  • ReDoc: http://localhost:8000/redoc

> Testing

Frontend Tests

cd angular-client
npm test

Backend Tests

cd python-server
python -m pytest tests/

Local Testing with Azure Storage

cd python-server/scripts
./test-local.sh

Deployment

Frontend Deployment (Firebase Hosting)

cd angular-client
npm run build
firebase deploy

Backend Deployment (Google Cloud Run)

cd python-server
gcloud run deploy coursewagon-api \
  --source . \
  --region asia-southeast1 \
  --allow-unauthenticated

Available Scripts

Frontend

  • npm start - Run development server
  • npm run build - Build for production
  • npm test - Run unit tests

Backend

  • uvicorn app:app --reload - Run development server
  • ./scripts/test-local.sh - Test with local Azure storage
  • ./scripts/deploy-complete.sh - Deploy to production

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

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Google Gemini AI for content generation
  • Firebase for authentication and hosting
  • Azure for cloud storage
  • Angular and FastAPI communities

Support

For support, email [email protected] or open an issue in the GitHub repository.

Links

About

CourseWagon is a web application designed to streamline course management and subject generation using Generative AI. This Angular application interacts with a FastAPI backend to manage courses, subjects, modules, chapters, topics, subtopics, and their respective content.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •