An open-source Notes Sharing Platform for Educational Institutions
Flexilearn 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, FlexiLearn 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/FlexiLearn.gitGo to the project directory
cd FlexiLearnInstall 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 devStart 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! πβ¨