This project is developed as part of a comprehensive course on building a professional online class platform. The platform is designed using a microservices architecture, demonstrating the dynamic nature and flexibility in selecting different programming languages for various services. The primary technologies used in this project include Express (Node.js) and Laravel (PHP).
- Microservices Architecture: The platform is divided into multiple microservices, each responsible for specific functionalities, ensuring modularity and ease of maintenance.
- API Gateway: Acts as a single entry point to various microservices, handling request routing, composition, and protocol translation.
- Dynamic Service Integration: Different services can be developed using different programming languages, showcasing the flexibility of microservices architecture.
- User Authentication: Secure user registration and login functionality.
- Course Management: Features for creating, updating, and deleting courses.
- Enrollment System: Allows students to enroll in courses and manage their enrolled courses.
- Real-time Notifications: Provides real-time updates and notifications to users.
- Node.js with Express: Used for developing the user service and API Gateway.
- PHP with Laravel: Used for developing the course management service.
- MySQL: Used as the primary relational database for storing user and course data.
- Redis: Used for caching and session management to enhance performance.
- Docker and Docker Compose installed
- Node.js and npm installed
- PHP and Composer installed
-
Clone the Repository:
shCopy codegit clone https://github.com/yourusername/online-class-platform.git cd online-class-platform -
Set Up Environment Variables: Create a
.envfile in the root directory and add the necessary environment variables for each service. -
Build and Start Services: Use Docker Compose to build and start all the services:
shCopy codedocker-compose up --build -
Run Migrations: Run the database migrations for each service to set up the database schema. For User Service (Express):
shCopy codecd user-service npm run migrateFor Course Service (Laravel):
shCopy codecd course-service php artisan migrate -
Access the Application: Open your web browser and navigate to
http://localhost:3000to access the frontend application.
For detailed API documentation and testing, refer to the Postman Documentation.
Contributions are welcome! Please fork the repository and create a pull request with your changes.
This project is licensed under the MIT License. See the LICENSE file for details.
Special thanks to the course instructors and the community for their guidance and support throughout the development of this project.