UNI NOTES PROJECT: A Collaborative Platform for Sharing School Notes

wathika - Sep 17 - - Dev Community

Image description

Defining the Purpose of UNI NOTES PROJECT
The UNI NOTES PROJECT is a web platform designed to help students share, view, and download school notes seamlessly. Whether you missed a class or are looking for study materials, this project makes it easy to collaborate and access notes. With features like search and commenting, it fosters a more interactive and supportive learning environment.

Team Members and Roles
This project was a solo endeavour. As the sole developer, I was responsible for everything, from design and development to deployment and maintenance. The project took roughly two months, broken into weekly sprints focused on specific features.

Who Was UNI NOTES PROJECT Created For?
This platform is aimed at students, primarily those in higher education, looking for an efficient way to exchange study materials. Teachers and educators can also use the platform to distribute supplementary notes and encourage collaboration among students.

Personal Focus and Challenges
My focus was on building a platform that was simple to use, while ensuring it could handle scalable traffic and secure data management. The engineering challenge was in balancing the load between multiple servers to ensure smooth performance, while also focusing on user interface and experience with React and Flask.

Why I Chose This Project: A Personal Story
I’ve always believed in the power of collaboration when it comes to learning. Back in high school, I wasn’t the best at taking notes. My classmates, however, excelled at this. I vividly remember how we used to share photocopies of notes to help each other study for exams. I benefited tremendously from this collaboration, and it gave me the idea to recreate a modern version of that experience through the web.

After university, I noticed the same thing: students struggled to catch up when they missed classes or needed better notes. This inspired me to create the UNI NOTES PROJECT to ensure no student feels left behind due to a lack of access to materials. This project allows students from anywhere, regardless of geography or background, to benefit from shared resources.

Summary of the Project’s Accomplishments
UNI NOTES PROJECT was successfully deployed and includes essential features for note sharing and access:

Core Features: Upload, view, and download notes.
Search Functionality: Users can search for notes based on keywords or tags.
Scalability: Load balancing with Nginx ensures smooth performance even under heavy load.
Below is the architecture diagram that illustrates how data flows through the application:

Frontend: Built with React, using Axios for API communication.
Backend: Powered by Flask, interacting with a MySQL database.
Nginx: Handles load balancing to ensure traffic is evenly distributed across multiple servers.

Key Features Completed:
User Authentication: Only authorized users can upload or download notes.
Responsive Design: The platform is mobile-friendly, allowing access from any device.
Search and Commenting: Facilitates interaction and makes it easy to find specific notes.
Most Difficult Technical Challenge
One of the biggest technical hurdles I faced was optimizing database performance as the platform scale. Here’s how I tackled it:

Situation: When the application started handling a higher volume of users, I noticed that database queries were slowing down the entire system.
Task: I needed to optimize the MySQL database to ensure efficient queries while maintaining data integrity.
Action: After researching various optimization techniques, I decided to index the most frequently queried fields (like tags and titles) and rewrite several SQL queries for efficiency. I also implemented database connection pooling to manage concurrent connections more effectively.
Result: These optimizations significantly improved query speed and reduced server response time, even under heavy load. The system now handles traffic more gracefully without slowing down or crashing.

What I’ve Learned
This project taught me a lot about building and scaling a full-stack application. Here are some key takeaways:

Technical Lessons: Proper indexing and query optimization are crucial for database performance. Also, handling load balancing with Nginx has given me insights into scaling web applications for higher traffic.
What I’d Do Differently: I would spend more time initially planning database architecture. A well-optimized database schema can save a lot of headaches later on.
Self-Discovery: I learned that I thrive under challenges that require both deep technical problem-solving and creative design. Working solo on such a comprehensive project gave me confidence in my ability to manage all aspects of development.
About Me
I’m a full-stack developer with a passion for building platforms that promote collaboration and learning. With experience in Flask, React, and MySQL, I focus on creating scalable, secure applications. You can find more of my work and connect with me through the following links:

GitHub Repository for UNI NOTES PROJECT
https://github.com/wathika-eng/classnotes

Thank you for reading about the UNI NOTES PROJECT! I look forward to hearing your thoughts and feedback.

. .
Terabox Video Player