Skip to content

Vath-Song99/learnwithkru-monorepo

Repository files navigation

Contributors Forks Stargazers Issues


Logo

Learnwithkru

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Contact

About The Project

today's interconnected world, the demand for personalized education is at an all-time high. Learners seek tailored experiences to fit their unique needs and schedules, while educators want flexible platforms to reach more students and offer impactful, individualized instruction. Our project addresses this by creating an innovative platform, similar to Preply, that connects students and teachers for one-on-one educational experiences.

Utilizing advanced technology, our platform ensures seamless interactions through a user-friendly interface, robust search functions, and secure communication tools. This allows learners to find the ideal teacher for their needs and helps teachers access a wider student base.

Our goal is to make personalized education accessible and effective, whether for mastering languages, excelling in academics, or acquiring new skills. Join us in transforming education, fostering connections that drive growth and success.

(back to top)

Product Vision board

Explore our comprehensive vision for the future of our product:

Vision

Mission

Our mission centers on democratizing education. They strive to leverage cutting-edge technology to make educational opportunities affordable and accessible for a global audience. This focus on affordability and technological innovation allows them to empower individuals worldwide to achieve their language learning goals.

Business Canva Model

Review our strategic business model and how we create value:

Business Canva Model

UI design

This User Interface enhances clarity and usability, ensuring an intuitive experience for users of this project.

Figma

(back to top)

Built With

This section lists major frameworks and libraries used in the Learnwithkru project:

  • Next.js
  • Node.js
  • TypeScript
  • Express
  • MongoDB

(back to top)

Project Structure

The Learnwithkru project follows a monorepo structure. Here’s a brief overview:

learnwithkru-monorepo/
├── application/
│   └── frontend/
├── packages/
│   ├── api-gateway/
│   ├── auth/
│   ├── notification/
│   ├── student/
│   ├── teacher/
│   ├── user/
│   └── volomes/
├── libs/
│   ├──  shared-libs/
│   └──  config-libs/
├── docs/
├── node_modules
├── package.json
├── docker-compose.yaml
└── README.md

Each package has its own set of dependencies and configuration files, allowing for modular development.

(back to top)

Getting Started

With Docker

Follow these steps to set up this project locally using Docker.

Prerequisites

Ensure you have the following software installed before proceeding:

Setup Steps

  1. Clone the project:

Open your terminal and run the following command to clone the project repository:

    git clone https://github.com/Vath-Song99/learnwithkru-monorepo.git
  1. Navigate to the Learnwithkru-monorepo folder:

Open your terminal and change the directory to the Learnwithkru-monorepo folder. Replace path/to with the actual path to the project directory on your machine.

    cd path/to/learnwithkru-monorepo
  1. Build the Docker images: Use the following command to build the Docker images. This will set up the necessary environment for your project.
    yarn build:docker
  1. To run the Docker containers: Use the following command to build and start the Docker containers. This will set up the necessary environment for your project.
    yarn start:docker
  1. To run the Application (Front-end):
    yarn start:app

After completing these steps, your project will be successfully set up locally!

Others command
  • Restart Docker
    yarn restart:docker
  • Stop Docker
    yarn stop:docker
  • Remove Docker Containers
    yarn remove:containers

To see The application:

After run the follow command above you make request to the Application of Learnwithkru plateform:

    http:localhost:8000

To test API

If you prefer to test the API Docs you can do by make the request to the endpoint below:

http://localhost:service-port/swagger

sample endpoint for auth api:

http://localhost:3001/swagger

Services

  1. Authentication Service: Securely authenticate users accessing the system.
  2. Teacher Service: Manage data and actions related to teachers.
  3. Student Service: Handle student-related functionalities.
  4. User Service: Manage user accounts and basic user-related functionalities.
  5. Notification Service: Handle notifications and communication within the system.

Each service is designed to be modular, scalable, and easy to integrate with other components of the system.

Features

Authentication Service

  • Secure user authentication mechanisms.
  • Multi-factor authentication (MFA) support.
  • Session management for maintaining authentication state.

Teacher Service

  • Profile management for teachers.
  • Listing profile functionalities.
  • feedback tools.

Student Service

  • Joining management for students.
  • Progress tracking features.

User Service

  • Account creation and management.
  • Integration with the authentication service.
  • Role-based access control.

Notification Service

  • Push and email notifications.
  • Customizable notification templates.

Architecture

  • Microservices Architecture: Each service is implemented as an independent microservice.
  • API Gateway: Handles routing requests and cross-cutting concerns like authentication.
  • Containerization: Services are containerized using Docker.
  • Logging and Monitoring: Centralized logging and monitoring solutions are implemented.
  • Security: Security best practices are followed, including encryption and regular security audits.

For detailed instructions on setting up and using each service, please refer to their respective README files.

(back to top)

Contact

@Vath-Song99 @nareth347 @seaporhai @thon1525

Learnwithkru - (https://www.facebook.com/profile.php?id=100092631759554) - learnwithkru287@gmail.com

Project Link: Learnwithkru-monorepo

(back to top)