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.
- 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
- 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
- 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
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
- Node.js (v18 or higher)
- Python 3.10+
- MySQL database
- Firebase project (for authentication)
- Azure Storage account (optional)
- Google Gemini API key
# 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 startThe application will be available at http://localhost:4200
# 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 --reloadThe API will be available at http://localhost:8000
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
- Create a Firebase project
- Enable Authentication
- Download service account credentials
- Place in
python-server/utils/ - Update Firebase configuration in Angular app
Once the backend is running, access the interactive API documentation at:
- Swagger UI:
http://localhost:8000/docs - ReDoc:
http://localhost:8000/redoc
cd angular-client
npm testcd python-server
python -m pytest tests/cd python-server/scripts
./test-local.shcd angular-client
npm run build
firebase deploycd python-server
gcloud run deploy coursewagon-api \
--source . \
--region asia-southeast1 \
--allow-unauthenticatednpm start- Run development servernpm run build- Build for productionnpm test- Run unit tests
uvicorn app:app --reload- Run development server./scripts/test-local.sh- Test with local Azure storage./scripts/deploy-complete.sh- Deploy to production
- 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
This project is licensed under the MIT License - see the LICENSE file for details.
- Google Gemini AI for content generation
- Firebase for authentication and hosting
- Azure for cloud storage
- Angular and FastAPI communities
For support, email [email protected] or open an issue in the GitHub repository.
- Live Application: https://www.coursewagon.live