SkillSails is a web application built using the MERN (MongoDB, Express.js, React.js, Node.js) stack, designed to facilitate learning by allowing users to explore courses and add their own courses. This project also incorporates JWT (JSON Web Tokens) for user authentication, Recoil for state management, and Material-UI (MUI) for styling.
- User Authentication: SkillSails provides user authentication functionality using JWT, allowing users to securely login and logout.
- Course Exploration: Users can explore a variety of courses available on the platform.
- Course Creation: Users have the ability to add their own courses to the platform.
- State Management: Recoil is utilized for efficient state management, ensuring a smooth user experience.
- Styling: Material-UI (MUI) is used for consistent and visually appealing styling across the application.
To run SkillSails locally, follow these steps:
- Clone this repository to your local machine.
- Navigate to the project directory in your terminal.
- Install dependencies by running
npm install
in the root directory. - Set up your MongoDB database and update the connection string in the
.env
file. - Start the server by running
node index.js
in the server. - Start the client by running
npm run dev
in the root directory.
- MongoDB: A NoSQL database used for storing user data and course information.
- Express.js: A Node.js web application framework used for building the backend server.
- React.js: A JavaScript library used for building the user interface.
- Node.js: A JavaScript runtime used for building the backend server.
- JWT (JSON Web Tokens): Used for user authentication and session management.
- Recoil: A state management library for managing the global state of the application.
- Material-UI (MUI): A popular React UI framework used for styling components.
Contributions are welcome! If you'd like to contribute to SkillSails, please follow these steps:
- Fork this repository.
- Create a new branch.
- Make your changes.
- Commit your changes.
- Push to the branch.
- Create a new Pull Request.