This application is a full-stack LMS, built with Spring Boot framework for backend services and ReactJS for the frontend. The purpose of this application is to provide a platform for instructors to share their knowledge and monetize them as they wish. Users can access courses based on their interests or courses created by their favorite instructors.
-
Java 17 or later
-
npm latest version.
-
MySQL server and MongoDB server. You can connect to your servers on the cloud as well.
-
Install MySQL server and ensure that the server is running on your local computer.
- Set password for your root account and note down your username and password.
- You can download GUI for MySQL such as MySQL Workbench if you are not used to using the terminal.
-
Install MongoDB server and ensure that the server is running on your local computer.
- You can download GUI for MongoDB such as MongoDB Compass for a friendlier interface.
-
Create a
.env
in the./src/main/js
folder. -
Configure
REACT_APP_BACKEND_BASE_URL=http://localhost:8080
-
Rename
example.application.properties
toapplication.properties
in./src/main/resources
folder. -
Update values for
spring.datasource.url
,spring.datasource.username
andspring.datasource.password
fields. -
Update value for
spring.data.mongodb.database
field to the name of your database.
Note: Please ensure that your MySQL and MongoDB servers are running.
-
Navigate to root folder.
-
Run
./gradlew bootRun
to run the Spring Boot server. The server will be running athttp://localhost:8080
-
Note: You do not need gradle installed in your machine for this.
-
Navigate to
./src/main/js
folder. -
Run
npm install
command to install all dependencies. -
Run
npm run dev
to start front-end locally. -
Fire up your favorite browser and access
http://localhost:5173
Work in progress. API Documentation will be recorded in ./docs/api.md
Build a Course & LMS Platform: Next 13, React, Stripe, Mux, Prisma, Tailwind, MySQL | Udemy Clone
Spring Guides on Building a RESTful Web Service
Add authorization to a Spring Boot application
Email: [email protected]
LinkedIn: https://www.linkedin.com/in/leminhgiang/