Hey there! Welcome to StudyNotion, a cool project I've been working on to make learning fun and accessible. This README is like our tour guide, so let's dive in and see what's under the hood!
StudyNotion is my way of making learning interactive and exciting. It's not just for students but also for awesome instructors to share their knowledge with learners around the world. With features like flawless responsiveness across all screen sizes, a meticulously documented backend, progress tracking for enrolled courses, and secure payments through Razorpay, StudyNotion is here to make your learning experience better than ever!
This README will walk you through everything - from how the system works to setting it up on your machine. So, let's get started!
The front-end is what you see - the cool buttons, pages, and all that jazz. It's built with ReactJS, a tech that makes things look awesome and work smoothly. It talks to the back-end using something called RESTful API calls, which is just a way of saying they chat and share info.
For Students:
- Homepage: The starting point, with links to courses and your details.
- Catalog: Check out different course categories.
- Course List: A list of all courses with details and ratings.
- Cart: Keep track of the courses you're interested in.
- Cart Checkout: Buy your selected courses hassle-free.
- Course Content: Dive into the course materials.
- User Details: Know everything about your account.
- User Edit Details: Make your account truly yours.
For Instructors:
- Dashboard: Get a quick overview of your courses and earnings.
- Course Management Pages: Create, update, and delete courses - it's your course kingdom!
- View and Edit Profile Details: Personalize your instructor account.
For the cool stuff on the front-end, I used ReactJS, CSS for styling, Tailwind to make things pretty, and Redux to keep things organized.
Now, let's talk about the back-end - the brain behind everything. It's like the engine room, making sure everything runs smoothly. I used NodeJS and ExpressJS for this part, and they work together to handle user accounts, courses, payments, and more.
- User Authentication and Authorization: Sign up, log in, and keep things secure.
- Course Management: Instructors can create, update, and delete courses, while students can view and rate them.
- Payment Integration: Buy courses securely with Razorpay.
- Cloud-based Media Management: All our images, videos, and documents are stored and managed by Cloudinary.
- Markdown Formatting: Courses are stored in Markdown format for a cool display.
- Login with Google: Users can now log in seamlessly using their Google accounts.
For this part, I used Node.js, Express.js, MongoDB to store all the info, JWT for security, Bcrypt to keep passwords safe, Mongoose to help with the database, Cookie parser for cookies (not the tasty kind!), Nodemailer to send emails, and Razorpay for payments.
Our info hangs out in MongoDB, a super-flexible database. It keeps everything organized, from course content to user data.
Our APIs (Application Programming Interfaces - just a way for the front and back to talk) follow a style called REST. It's like a language they both understand, making sure they share info smoothly. Check the API Documentation for the full details.
Want to play with StudyNotion on your machine? Easy peasy:
- Clone the repository:
git clone https://github.com/username/repo.git
- Go to the project directory:
cd StudyNotion
- Install what's needed:
npm install
- Set up a MongoDB database and get the connection URL.
- Create a
.env
file in the main folder with these inside:
- Start the server:
npm start
- Go to the client folder:
cd client
- Start the React server:
npm start
- Open your browser: Go to http://localhost:3000.
Love to code? Want to make StudyNotion even cooler? Your contributions are welcome!
So, let's explore the world of StudyNotion together - where learning meets fun. Happy coding! 🚀