LearnVibe is a comprehensive learning platform built with a focus on clean architecture, security, and scalability. The platform enables course creation, student enrollment, and content delivery through a microservices-based backend.
learnvibe/
βββ backend/ # Backend services (Go)
β βββ gateway/ # API Gateway service
β βββ cms/ # Course Management service
β βββ content-delivery/ # Content Delivery service
β βββ tests/ # Cross-service tests
βββ Documents/ # Project documentation
- Learning Management System: Course creation, student enrollment, progress tracking
- Content Delivery: Secure delivery of educational materials (videos, documents, etc.)
- User Authentication: JWT and OAuth2 (Google) authentication
- API Security: Rate limiting, HTTPS, JWT tokens
- Scalable Architecture: Microservices with containerization
The backend is built using modern web development practices:
- Clean Architecture: Separation of concerns with distinct layers
- Containerization: Docker + Docker Compose for consistent environments
- API Gateway: Service orchestration and unified entry point
- Caching: Redis for high-performance data access
- Message Brokers: RabbitMQ for asynchronous communication
- Centralized Logging: OpenSearch for log aggregation and analysis
- Storage: MinIO for S3-compatible object storage
- Testing: Unit, integration, contract, and load testing
- Docker and Docker Compose
- Go 1.20+ (for local development)
- PostgreSQL (for local development)
- Google OAuth credentials (for authentication)
- Clone the repository:
git clone https://github.com/yourusername/LearnVibe.git
cd LearnVibe- Configure environment variables:
cd backend
cp .env.example .env
# Edit .env file with your settings- Start the services:
docker-compose up -d- Access the services:
- API Gateway: http://localhost:8000
- CMS Service: http://localhost:8080
- Content Delivery Service: http://localhost:8082
- OpenSearch Dashboards: http://localhost:5601
- RabbitMQ Management: http://localhost:15672
- MinIO Console: http://localhost:9001
See the backend README for detailed development instructions.
The project includes comprehensive testing:
- Unit tests
- Integration tests
- Contract tests for service compatibility
- Load & stress testing with k6
To run tests:
cd backend
./run-tests.bat # Windows
./scripts/run-tests.sh # Linux/macOS- OAuth2 authentication with Google
- JWT token-based authentication
- Role-based access control
- Rate limiting
- Input validation
- HTTPS support
- β Clean Architecture
- β Docker and Compose containerization
- β CRUD functionality with API Gateway
- β Redis caching
- β RabbitMQ message broker
- β OpenSearch centralized logging
- β OAuth2 authentication
- β Secure API implementation
- β Comprehensive testing suite
- β 80%+ test coverage