An open-source Notes Sharing Platform for Educational Institutions
Ruredu is a web-based platform designed for educational institutions to streamline the sharing of PDF notes. It provides a structured organization of PDF notes based on subjects, units, and topics. Additionally, Ruredu offers task tracking features to monitor completed and incomplete tasks for better academic management.
- Frontend: React
- Backend: Node.js, Express
- Database: MongoDB
- Styling: Tailwind CSS
- File Upload: Multer
- File Rendering: iframe
Clone the project
git clone https://github.com/your-username/Ruredu.git
Go to the project directory
cd Ruredu
Install dependencies for frontend
cd client
npm install
Install dependencies for backend
cd server
npm install
Connect MongoDB
mongoose.connect('YOUR_MONGODB_CONNECTION_URL')
Start the frontend server
cd client
npm run dev
Start the backend server
cd server
nodemon index.js
- Student Side: Manage notes more efficiently based on subject unit categorisation 🎉
- Admin Side: Because only admins can handle the sacred task of adding notes. 👑
- Admin Powers: Grant access to others to become admins. Beware of the power you wield! ⚡
- Task Monitoring: Keep an eye on those pending tasks, mark them completed, feel accomplished. 📝✅
- Subjects ➡️ Units ➡️ Topics ➡️ Notes Because who needs a straightforward hierarchy?
- Update your username and password. Forget them again. Repeat. ♻️
-
Spent a day figuring out an Axios error . Figured out that it was an proxy error and fixed it by adding full URL - http://localhost:5000/api/... because why not? It worked like a charm! 😅
-
Fedora doesn't support mongosh, had to resort to MongoDB Atlas. Fedora, you let me down. 🐧
-
IP address changes mean server stops. MongoDB only allows connected IPs. Cue the sudden existential crisis. 🌐
-
Wrestling with nested objects in the subject model. Three layers deep, like an onion. Cried a little. 😢
Huge shoutout to ChatGPT! It wrote most of my code, even this README. Yeah, I'm practically an AI assistant myself. 🤖
-
Still can't tell the difference between PUT and POST. It's like asking me to differentiate between a cat and a dog. 😅
-
Arrow functions? Async functions? Eh, who needs them? I'm a prompt engineer. I can make it work, even if I don't understand how. 🛠️
Contributions are welcome! This might be one of the quirkiest projects you've ever seen . If you're a beginner, it's a golden opportunity to dive into the chaos and fix things! ✨
This project is licensed under the [MIT LICENSE]. Remember, sharing code is cool, just like sharing notes! 🚀✨