Skip to content

hesham-ashraf/LearnVibe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

28 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

LearnVibe - Modern Learning Platform

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.

Project Structure

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

Key Features

  • 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

Technical Implementation

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

Getting Started

Prerequisites

  • Docker and Docker Compose
  • Go 1.20+ (for local development)
  • PostgreSQL (for local development)
  • Google OAuth credentials (for authentication)

Quick Start

  1. Clone the repository:
git clone https://github.com/yourusername/LearnVibe.git
cd LearnVibe
  1. Configure environment variables:
cd backend
cp .env.example .env
# Edit .env file with your settings
  1. Start the services:
docker-compose up -d
  1. Access the services:

Development

See the backend README for detailed development instructions.

Testing

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

Security Features

  • OAuth2 authentication with Google
  • JWT token-based authentication
  • Role-based access control
  • Rate limiting
  • Input validation
  • HTTPS support

Requirements Implemented

  • βœ… 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

About

Online Learning Platform πŸŽ“

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors