Skillmastery is a feature-rich Learning Management System (LMS) developed using the MERN stack (MongoDB, Express.js, React.js, Node.js) and Bootstrap for the frontend. It empowers teachers to effortlessly create classrooms, share posts, assign homework with deadlines, monitor student progress, and download class scores in Excel format. It also provides a seamless experience for students to enroll, submit projects, and engage in interactive discussions.
## πΈ Screenshots- Classroom Creation: Teachers can easily create classrooms to manage their students and instructional content.
- Post Sharing: Teachers can share posts within classrooms to provide important updates, announcements, or learning resources.
- Homework Assignment: Teachers can assign homework with specific deadlines for students to complete.
- Student Progress Monitoring: Teachers can track student progress and performance within the LMS.
- Class Score Download: Teachers can download class scores in Excel format for efficient analysis.
- Seamless Enrollment: Students can seamlessly enroll in classrooms using access codes provided by teachers.
- Project Submission: Students can submit their projects or assignments directly through the LMS.
- Interactive Discussions: Students can engage in interactive discussions within the LMS, promoting collaboration and knowledge sharing.
The project utilizes the following technologies:
- MongoDB: Database for storing LMS data.
- Express.js: Web application framework for building the backend API.
- React.js: JavaScript library for building the user interface.
- Node.js: JavaScript runtime environment for server-side execution.
- Bootstrap: CSS framework for responsive and mobile-first web development.
- Clone the repository:
git clone [repository URL]
- Install dependencies:
npm install
- Set up the environment variables. Rename the
.env.example
file to.env
and provide the necessary values. - Frontend:
REACT_APP_BASE_URL=<Your backend URL>
- Backend:
MONGO_DB_URL=<your database URL>
CLIENT_URL=<Your hosting domail URL>
# token
SECRET_ACCESS_TOKEN= <Whatever you choose>
ACCESS_TOKEN_EXPIRE= <Whatever you choose>
SECRET_REFRESH_TOKEN= <Whatever you choose>
REFRESH_TOKEN_EXPIRE= <Whatever you choose>
- Start the development server:
npm start
- Open the application in your browser at
http://localhost:3000
- Navigate to the frontend directory of the project:
cd frontend
- Build the Docker image for the client:
docker build -t skillmastery-frontend .
- Run the Docker container for the client:
docker run -d -p 3000:3000 --name skillmastery-frontend skillmastery-frontend
- Access the client application in your browser at: http://localhost:3000
- Navigate to the backend directory of the project:
cd backend
- Build the Docker image for the server:
docker build -t killmastery-frontend .
- Run the Docker container for the server:
docker run -d -p 5000:5000 --name killmastery-frontend killmastery-frontend
- The server is now running and ready to accept requests.
Contributions from the following individuals are already acknowledged:
To contribute to SkillMastery, follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b new-feature
. - Make your changes and commit them:
git commit -am 'Add new feature'
. - Push the changes to your fork:
git push origin new-feature
. - Submit a pull request.