SOLFIND
Web Lens
Portal home

GitHub - THEYASHGAUR/microservices-lms: Next.js + TypeScript + Supabase · GitHub

https://github.com/THEYASHGAUR/microservices-lms • 351 KB fetched
Open original page


GitHub - THEYASHGAUR/microservices-lms: Next.js + TypeScript + Supabase · GitHub

Skip to content

Navigation Menu

Sign in Appearance settings

* Platform
* AI CODE CREATION
* GitHub Copilot Write better code with AI

* GitHub Copilot app Direct agents from issue to merge

* MCP Registry Integrate external tools

* DEVELOPER WORKFLOWS
* Actions Automate any workflow

* Codespaces Instant dev environments

* Issues Plan and track work

* Code Review Manage code changes

* Code Quality Enforce quality at merge

* APPLICATION SECURITY
* GitHub Advanced Security Find and fix vulnerabilities

* Code security Secure your code as you build

* Secret protection Stop leaks before they start

* EXPLORE
* Why GitHub

* Documentation

* Blog

* Changelog

* Marketplace

View all features

* Solutions
* BY COMPANY SIZE
* Enterprises

* Small and medium teams

* Startups

* Nonprofits

* BY USE CASE
* App Modernization

* DevSecOps

* DevOps

* CI/CD

* View all use cases

* BY INDUSTRY
* Healthcare

* Financial services

* Manufacturing

* Government

* View all industries

View all solutions

* Resources
* EXPLORE BY TOPIC
* AI

* Software Development

* DevOps

* Security

* View all topics

* EXPLORE BY TYPE
* Customer stories

* Events & webinars

* Ebooks & reports

* Business insights

* GitHub Skills

* SUPPORT & SERVICES
* Documentation

* Customer support

* Community forum

* Trust center

* Partners

View all resources

* Open Source
* COMMUNITY
* GitHub Sponsors Fund open source developers

* PROGRAMS
* Security Lab

* Maintainer Community

* GitHub Stars

* Archive Program

* REPOSITORIES
* Topics

* Trending

* Collections

* Enterprise
* ENTERPRISE SOLUTIONS
* Enterprise platform AI-powered developer platform

* AVAILABLE ADD-ONS
* GitHub Advanced Security Enterprise-grade security features

* Copilot for Business Enterprise-grade AI features

* Premium Support Enterprise-grade 24/7 support

* Pricing
Search /

Sign in
Sign up Appearance settings

You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.
You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

THEYASHGAUR

/

microservices-lms

Public

*
Notifications
You must be signed in to change notification settings

*
Fork
0

*

Star
0

*

Code

*

Issues
0

*

Pull requests
0

*

Actions

*

Projects

*

Security and quality
0

*

Insights

Additional navigation options

*

Code

*

Issues

*

Pull requests

*

Actions

*

Projects

*

Security and quality

*

Insights

main

Branches Tags

Go to file

Code Open more actions menu

Latest commit
 

History
5 Commits
5 Commits

Folders and files
Name Name Last commit message
Last commit date

deploy

deploy

 
 

mobile-frontend

mobile-frontend

 
 

services

services

 
 

shared

shared

 
 

tests

tests

 
 

web-frontend

web-frontend

 
 

.gitignore

.gitignore

 
 

README.md

README.md

 
 

package.json

package.json

 
 

View all files

Repository files navigation

*

* README

More items

LMS - Learning Management System

A production-ready, full-stack Learning Management System built with microservices architecture, designed for scalability and easy deployment on cloud platforms like AWS and GCP.

🏗️ Architecture

This project follows a microservices architecture with the following services:

* API Gateway (Port 3000) - Routes requests to appropriate microservices

* Auth Service (Port 3001) - Handles authentication and authorization

* User Service (Port 3002) - Manages user profiles and roles

* Video Service (Port 3003) - Handles video processing and streaming

* Chat & Call Service (Port 3004) - Real-time chat and video calls

* Payment Service (Port 3005) - Payment processing and subscriptions

* Notification Service (Port 3006) - Email, SMS, and push notifications

* Frontend (Port 3007) - Next.js React application

* Database Service - PostgreSQL with initialization scripts

🛠️ Tech Stack

Backend Services

* Node.js with TypeScript

* Express.js for REST APIs

* PostgreSQL for data persistence

* Redis for caching and sessions

* Socket.io for real-time features

* JWT for authentication

* Docker for containerization

Frontend

* Next.js 14 with React 18

* TypeScript for type safety

* Tailwind CSS for styling

* Socket.io Client for real-time communication

Infrastructure & DevOps

* Docker & Docker Compose for containerization

* Kubernetes for orchestration

* Helm for package management

* Terraform for Infrastructure as Code

* AWS/GCP cloud platforms

* Nginx for load balancing and SSL

* Prometheus & Grafana for monitoring

🚀 Quick Start

Prerequisites

* Node.js 18+

* Docker & Docker Compose

* Git

* kubectl (for Kubernetes deployment)

* Helm (for Helm deployment)

* Terraform (for infrastructure deployment)

🏃‍♂️ Development Environment

* Clone the repository:

git clone <repository-url>
cd lms

* Start with Docker Compose:

cd deploy/docker
docker-compose -f docker-compose.dev.yml up -d

* Access the application:

* Frontend: http://localhost:3007

* API Gateway: http://localhost:3000

* Individual services: http://localhost:3001-3006

🏭 Production Deployment

Option 1: Docker Compose (Single Server)

# Set environment variables
export DB_PASSWORD="your-secure-password"
export JWT_SECRET="your-jwt-secret"
export REDIS_PASSWORD="your-redis-password"

# Deploy
cd deploy/docker
docker-compose -f docker-compose.prod.yml up -d

Option 2: Kubernetes with Helm

# Deploy infrastructure first
./deploy/scripts/deploy.sh infra

# Deploy application
./deploy/scripts/deploy.sh helm

Option 3: Kubernetes with Manifests

# Deploy infrastructure
./deploy/scripts/deploy.sh infra

# Deploy application
./deploy/scripts/deploy.sh k8s

🔧 Development

To run services individually for development:

* Install all dependencies:

npm run install:all

* Start all services:

npm run dev

* Or start individual services:

npm run dev:auth # Auth service only
npm run dev:user # User service only
# ... etc

📁 Project Structure

lms/
├── services/ # Microservices
│ ├── api-gateway/ # API Gateway service
│ ├── auth-service/ # Authentication service
│ ├── user-service/ # User management service
│ ├── video-service/ # Video processing service
│ ├── chat-call-service/ # Real-time chat & calls
│ ├── payment-service/ # Payment processing
│ ├── notification-service/ # Notifications
│ └── database/ # Database service & init scripts
├── frontend/ # Next.js frontend
├── shared/ # Shared utilities and types
│ ├── types/ # TypeScript type definitions
│ ├── constants/ # Application constants
│ ├── middlewares/ # Shared middleware
│ └── logger.ts # Centralized logging
├── deploy/ # Deployment configurations
│ ├── docker/ # Docker Compose files
│ ├── k8s/ # Kubernetes manifests
│ ├── helm/ # Helm charts
│ ├── terraform/ # Infrastructure as Code
│ ├── monitoring/ # Monitoring configurations
│ ├── nginx/ # Nginx configurations
│ └── scripts/ # Deployment scripts
├── docs/ # Documentation
├── tests/ # Test files
├── scripts/ # Utility scripts
└── README.md

🔧 Build & Deploy Scripts

Build All Services

# Build for development
./deploy/scripts/build.sh

# Build for production
ENVIRONMENT=production ./deploy/scripts/build.sh

# Build and push to registry
PUSH_TO_REGISTRY=true ./deploy/scripts/build.sh

Deploy Application

# Deploy with Docker Compose
./deploy/scripts/deploy.sh docker

# Deploy with Kubernetes
./deploy/scripts/deploy.sh k8s

# Deploy with Helm
./deploy/scripts/deploy.sh helm

# Deploy infrastructure and application
./deploy/scripts/deploy.sh all

Monitoring Setup

# Deploy all monitoring components
./deploy/scripts/monitoring.sh all

# Access monitoring
kubectl port-forward -n monitoring svc/prometheus 9090:9090
kubectl port-forward -n monitoring svc/grafana 3000:3000

Backup & Restore

# Create backup
./deploy/scripts/backup.sh backup

# Restore from backup
./deploy/scripts/backup.sh restore 20240101_120000

🌍 Environment Variables

Development

NODE_ENV=development
DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=password
DB_NAME=lms_db
REDIS_HOST=localhost
REDIS_PORT=6379
JWT_SECRET=your-super-secret-jwt-key

Production

NODE_ENV=production
DB_HOST=your-rds-endpoint
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=your-secure-password
DB_NAME=lms_db
REDIS_HOST=your-redis-endpoint
REDIS_PORT=6379
JWT_SECRET=your-production-jwt-secret
AWS_S3_BUCKET=your-s3-bucket
STRIPE_SECRET_KEY=your-stripe-key

📚 API Documentation

Each service exposes its own API endpoints:

* Auth Service : /api/auth/* - Authentication & authorization

* User Service : /api/users/* - User management

* Video Service : /api/videos/* - Video processing & streaming

* Chat Service : /api/chat/* - Real-time messaging

* Payment Service : /api/payments/* - Payment processing

* Notification Service : /api/notifications/* - Notifications

🔒 Security Features

* JWT Authentication with refresh tokens

* Rate Limiting on all endpoints

* Input Validation with express-validator

* CORS configuration

* Helmet security headers

* SSL/TLS encryption

* Database encryption at rest

* Redis authentication

📈 Scalability Features

* Horizontal Pod Autoscaling (HPA)

* Load Balancing with Nginx/ALB

* Database read replicas support

* Redis clustering

* CDN integration for static assets

* Microservices independent scaling

* Container orchestration with Kubernetes

🏗️ Infrastructure

AWS Infrastructure (Terraform)

* EKS Cluster with managed node groups

* RDS PostgreSQL with backup and encryption

* ElastiCache Redis with clustering

* S3 Bucket for file storage

* Application Load Balancer with SSL

* VPC with public/private subnets

* CloudWatch for logging and monitoring

Monitoring & Observability

* Prometheus for metrics collection

* Grafana for visualization

* Node Exporter for system metrics

* Health checks for all services

* Centralized logging with Winston

🤝 Contributing

* Fork the repository

* Create a feature branch ( git checkout -b feature/amazing-feature )

* Make your changes

* Add tests if applicable

* Commit your changes ( git commit -m 'Add amazing feature' )

* Push to the branch ( git push origin feature/amazing-feature )

* Open a Pull Request

Development Guidelines

* Follow TypeScript best practices

* Write comprehensive tests

* Update documentation

* Follow the existing code style

* Use conventional commit messages

📄 License

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

🆘 Support

* Documentation : Check the docs/ directory

* Issues : Open an issue on GitHub

* Discussions : Use GitHub Discussions for questions

🚀 Deployment Status

About
Next.js + TypeScript + Supabase
Resources
Readme
Activity
Stars
0 stars
Watchers
0 watching
Forks
0 forks
Report repository

Releases

Packages

Contributors

Languages

Footer

(c) 2026 GitHub, Inc.

Footer navigation

*
Terms

*
Privacy

*
Security

*
Status

*
Community

*
Docs

*
Contact

*

Manage cookies

*

Do not share my personal information

You can’t perform that action at this time.

Links found on this page

  1. Skip to content [direct]
  2. Sign in [direct]
  3. GitHub Copilot Write better code with AI [direct]
  4. GitHub Copilot app Direct agents from issue to merge [direct]
  5. MCP Registry Integrate external tools [direct]
  6. Actions Automate any workflow [direct]
  7. Codespaces Instant dev environments [direct]
  8. Issues Plan and track work [direct]
  9. Code Review Manage code changes [direct]
  10. Code Quality Enforce quality at merge [direct]
  11. GitHub Advanced Security Find and fix vulnerabilities [direct]
  12. Code security Secure your code as you build [direct]
  13. Secret protection Stop leaks before they start [direct]
  14. Why GitHub [direct]
  15. Documentation [direct]
  16. Blog [direct]
  17. Changelog [direct]
  18. Marketplace [direct]
  19. View all features [direct]
  20. Enterprises [direct]
  21. Small and medium teams [direct]
  22. Startups [direct]
  23. Nonprofits [direct]
  24. App Modernization [direct]
  25. DevSecOps [direct]
  26. DevOps [direct]
  27. CI/CD [direct]
  28. View all use cases [direct]
  29. Healthcare [direct]
  30. Financial services [direct]
  31. Manufacturing [direct]
  32. Government [direct]
  33. View all industries [direct]
  34. View all solutions [direct]
  35. AI [direct]
  36. Software Development [direct]
  37. DevOps [direct]
  38. Security [direct]
  39. View all topics [direct]
  40. Customer stories [direct]
  41. Events & webinars [direct]
  42. Ebooks & reports [direct]
  43. Business insights [direct]
  44. GitHub Skills [direct]
  45. Customer support [direct]
  46. Community forum [direct]
  47. Trust center [direct]
  48. Partners [direct]
  49. View all resources [direct]
  50. GitHub Sponsors Fund open source developers [direct]
  51. Security Lab [direct]
  52. Maintainer Community [direct]
  53. GitHub Stars [direct]
  54. Archive Program [direct]
  55. Topics [direct]
  56. Trending [direct]
  57. Collections [direct]
  58. Copilot for Business Enterprise-grade AI features [direct]
  59. Premium Support Enterprise-grade 24/7 support [direct]
  60. Pricing [direct]
  61. Sign up [direct]
  62. THEYASHGAUR [direct]
  63. Notifications [direct]
  64. Issues 0 [direct]
  65. Pull requests 0 [direct]
  66. Actions [direct]
  67. Projects [direct]
  68. Security and quality 0 [direct]
  69. Insights [direct]
  70. Branches [direct]
  71. Tags [direct]
  72. 5 Commits [direct]
  73. deploy [direct]
  74. mobile-frontend [direct]
  75. services [direct]
  76. shared [direct]
  77. tests [direct]
  78. web-frontend [direct]
  79. .gitignore [direct]
  80. README.md [direct]