This project is a course management application that allows students to view and enroll in courses, and instructors to create and manage courses. The application consists of a frontend built with React and a backend built with Node.js and Express.Hosted on Vercel.
Untitled.video.-.Made.with.Clipchamp.mp4
- React: A JavaScript library for building user interfaces.
- Redux: A predictable state container for JavaScript apps.
- Axios: Promise-based HTTP client for the browser and Node.js.
- Tailwind CSS: A utility-first CSS framework for rapid UI development.
- React-icon: A library of popular icons for React.
- v0.dev: Utilize shadcn/ui library to generate UI based on simple text prompts.
- Node.js: A JavaScript runtime built on Chrome's V8 JavaScript engine.
- Express: A minimal and flexible Node.js web application framework.
- MongoDB: A NoSQL database for storing course and user data.
- Mongoose: An ODM (Object Data Modeling) library for MongoDB and Node.js.
- Vercel: A cloud platform for static sites and Serverless Functions.
- Node.js: Ensure you have Node.js installed on your machine.
- MongoDB: You need a MongoDB instance running locally or in the cloud (e.g., MongoDB Atlas).
- Clone the backend repository:
git clone https://github.com/yashj09/Courses.git
cd backend
- Install dependencies:
npm install
- Create a
.env
file in the root directory with the following environment variables:
PORT=3000
MONGO_URI=your_mongodb_connection_string or use mongodb://localhost:27017/
- Start the backend server:
npm run dev
The backend server should now be running on http://localhost:3000
.
- Clone the frontend repository:
git clone https://github.com/yashj09/Courses.git
cd frontend
- Install dependencies:
npm install
- Start the frontend development server:
npm run dev
The frontend application should now be running on http://localhost:5173
.
- Ensure the backend server is running on
http://localhost:3000
. - Ensure the frontend application is running on
http://localhost:5173
.
You should now be able to access the application in your browser.
- GET
/api/courses
: Get all courses. - POST
/api/courses
: Create a new course . - GET
/api/courses/:id
: Get a course by ID.
- POST
api/:courseId/enroll/:studentId'
: Enroll in a course (Student only). - GET
api/:studentId/courses'
: Get all courses a student is enrolled in.
Feel free to reach out if you have any questions or need further assistance!