AcademyNet is an educational platform developed as part of an academic project for Year 3, Semester 1, 2024. The platform aims to provide a comprehensive environment for online learning, similar to systems like Coursera or Udemy. It supports functionalities for learners, instructors, and administrators, offering an extensive range of courses and a rich user experience across various devices.
The project is structured into multiple services, each running independently but interacting through well-defined interfaces. These services include:
The root of the repository contains a package.json
file to manage scripts for running all services concurrently during development.
Start by cloning the repository to your local machine:
git clone https://github.com/poorna-theekshana/AcademyNet.git
cd AcademyNet
Each service in the project requires its own environment variables for configuration. For security reasons, .env
files are not included in the repository. You will need to create these based on the example files provided in each service directory.
Navigate into each service directory and install the necessary npm packages:
# Install dependencies for the client
cd client
npm install
# Install dependencies for each service
cd ../course-service
npm install
cd ../learner-service
npm install
cd ../user-service
npm install
From the root directory, you can use the following command to start all services concurrently:
npm start
This will launch the client and all backend services, making them interact with each other.
AcademyNet is built using the Microservices architecture, ensuring scalability, maintainability, and resilience. Key technologies include:
The system uses JWT (JSON Web Tokens) for securely managing user sessions and authenticating requests across services. Each user role (learner, instructor, admin) has specific permissions and accessible endpoints.