COURZERO is a full-stack course selling web application that enables users to buy and sell courses. It provides a user-friendly interface for managing courses, user authentication, and facilitating course purchases.
- User and Admin authentication using JWT tokens
- CRUD operations for courses (Admin only)
- User signup, login, and course purchase
- View purchased courses by users
- MongoDB database integration
- Express server with token-based authentication
- Node.js
- Express.js
- MongoDB (via Mongoose)
- JSON Web Tokens (JWT)
- React
- MUI
Make sure you have the following installed:
- Node.js
- npm (Node Package Manager)
- MongoDB
-
Clone the repository:
git clone https://github.com/your-username/course-selling-app.git cd course-selling-app
-
Install dependencies:
npm install
-
Set up your MongoDB database:
Update the connection string in
index.js
:mongoose.connect('your-mongodb-connection-string', { useNewUrlParser: true, useUnifiedTopology: true, dbName: "course-app" });
-
Run the application:
npm start
The application should now be running on http://localhost:3000.
-
Admin routes:
/admin/signup
,/admin/login
,/admin/courses
to manage courses.
-
User routes:
/users/signup
,/users/login
,/users/courses
,/users/courses/:courseId
,/users/purchasedCourses
for user-related operations.
Provide more detailed information about your tech choices. Explain why you chose a particular stack, how components interact, and any other relevant technical details.
Feel free to contribute to this project by opening issues or submitting pull requests. Follow the CONTRIBUTING.md guidelines.
This project draws inspiration from concepts and structures covered in a course assignment. While the course served as a learning medium, all implementations and customizations with regards to the codebase have been done independently.
The course assignment that inspired this project can be found in the course repository and copy of my solutions. They provided valuable insights and served as a foundation for the development process.
I express my appreciation to the course instructorHarkirat Singh for creating educational content that contributed to the development of this project.