-
-
Schulkit
-
Schulkit uses these MongoDB Features!
-
Dashboard - Where you find important things at a glance
-
Fuzzy Follow - Enter the room ID given by professor
-
Fuzzy Follow - View the page in real-time, sync with the professor!
-
Whiteboard - Jam your ideas here
-
mem.txt - Store important pieces of texts / code snippets
-
Notice Board - Check & volunteer for pinned notices!
-
Test - Students can attempt tests here
-
Students can write the answers for the test questions here
-
TNT - TestNonxiety Button to help manage stress during tests!
-
Easy to view insights using MongoDB Atlas Charts!
💡 Inspiration
🌟 Schulkit was inspired by a mix of factors that got us super excited!
🎉We wanted to bring some schul (cool) vibes to school management and make it more fun and efficient for everyone involved.
📚 The digital revolution in education got our gears turning.
🚀 We saw how technology was transforming classrooms and thought, "Why not create a platform that takes it to the next level?"
💪 We also wanted to empower students! We know being a high school student can sometimes be a rollercoaster, so we thought, "Let's give them tools to make their lives easier!"
With features like following along with professors, taking notes, and accessing study materials, we wanted to level up their learning game.
🌟What it does
Schulkit powered by MongoDB Atlas, is a super intuitive and fun way to streamline and manage your school stuff the Schul way ⚡
🔐 Authentication:
- Powered by MongoDB Atlas Realm🍃
- No third party authentication, hence secured by Realm 🍃
- Authentication with API
- Additional e-mail verification feature included
💻 Dashboard:
Houses all the essential features: - To-Do list backed by MongoDB Atlas 🍃 - Calendar synced with important events - Test and assignment tile board showing the upcoming deadlines - The Canteen menu - cause that's pretty important - External links to other college resources
📚 Professor Sync:
- Follow along with professors on textbook PDFs.
- Concentrate on the lesson by staying in sync with the professor
- Notes Section📝 :
- Take notes right on the go while studying.
- Allows Schulkit to leverage the power of MongoDB Atlas 🍃 to seamlessly access and manipulate data.
- No more messy notebooks! Keep those thoughts organized.
- Fuzzy Search📋 :
- Will use fuzzy search to improve search within your notes
- Easy fetch powered by MongoDB Atlas Realm 🍃
- No more rummaging through stacks of paper! Find what you need in a snap.
- Notes Section📝 :
📌 Notice Board:
- Stay up-to-date with school notices and announcements.
- No more missing out on important info! Be in the know.
- Volunteer Button🙋 :
- Express interest in volunteering for events with just a click.
- Show your school spirit and lend a helping hand!
- Enhanced functionality, automating tasks and processes behind the scenes via Data API provided by MongoDB Atlas🍃
- Volunteer Button🙋 :
📝 Test Management:
- Professors can conduct tests through the website.
- Show what you've got and ace those exams!
- TNT (Test NoXiety Tool)💣🌬️ :
- Feeling overwhelmed during a test? Press the TNT button.
- Gives you option to resume the test in a bit
- Maybe you want to give it later? Mail the professor through the Triggers powered by MongoDB Atlas🍃 and do the test later!
- Take a breather, calm those nerves, and conquer the test with confidence!
- TNT (Test NoXiety Tool)💣🌬️ :
🗒️Mem.txt
- Short for memory text
- A paste-bin like implementation integration
- Data saved into MongoDB Atlas by using MongoDB Atlas SDK 🍃
✍️ Draw Board:
- Let your creative juices flow with a drawing board.
- Doodle, sketch, or unleash your inner Picasso!
🦾 How we built it
We used the following MongoDB Atlas features:
🔐 Authentication (MongoDB Atlas Realm)
- Implemented easy authentication with API using MongoDB Atlas Realm
- No third party authentication service required!
🛡️ Data Access Rules
- To-Do list items only visible to you on your login
- Easy and smoother way to manage permissions and separate data.
🌐 Web SDK
- Through Web SDK, all interactions that generated any data is saved into MongoDB Atlas Database
- Implemented here:
- Mem.txt
- To-Do list inside Dashboard
- Notice Board (Volunteer list, append names)
- TNT Test kit
- Notes section
📊 Data API
- With this feature, we were able to manipulate the volunteer list in the Notice Board page
- Implemented in Volunteer List (Notice Board)
🔼 Triggers
- Automatic saving in database in Schulkit via Triggers
- The test data in Schulkit is saved when TNT is triggered
📈 Chart Services
- Easy to monitor the code pastes in Mem.txt via charts service
- Easy to configure and various customization options
🚧 Challenges we ran into
- 🧩 Technical Integration:
- Integrating multiple features and functionalities into Schulkit was quite challenging.
- Ensuring seamless communication and data flow between different components required careful planning and implementation.
- This was the first time we were using Nuxt for such a project, it was new and exciting to setup since the release of Vue - Rurouni Kenshin (3.3), this update adds support for the intersection types.
- We had deployed our project to Cloudflare pages in the beginning, because we wanted to give it a try, but this decision backfired on us, there were constant build failures because many functions were not polyfilled natively by Cloudflare, and adding custom polyfills meant increased bundle size and more rendering time on the fly, hence we shifted to vercel, where deployment was smooth.
- The latest Nuxt and Nitro release which we were using were having issues, hot reload was not working, and it took more than 2 minutes to compile for local dev server, we had to hunt a lot for the solution, and got one from the maintainer after a lot of digging, it was a known bug for all users of the new version, and were able to fix it using a small config change.
- Along with all of this, Nuxt renders in hybrid mode, half on server, and then passes it down to the client to handle the rest, which causes a lot of plugins without SSR support to fail and panic on server, there are client components, but enabling them was an hassle because some plugins need to be initialized on the server, we had to remove the plugins, and had to cross-implement them, or just move them whole, so that they would be initialized and executed on the client side.
- ⏰ Time Constraints:
- Developing a comprehensive website for high school students with various features was time-consuming.
- Meeting project deadlines while ensuring the quality and functionality of each feature was quite challenging.
- 🎨 Intuitive UI/UX Design:
- Creating a user-friendly and visually appealing interface that high school students can easily navigate and understand was a challenge.
- Balancing aesthetics with functionality and ensuring a smooth user experience required thoughtful design decisions.
🏆 Accomplishments that we're proud of
- 🚀 Successful Feature Integration:
- We successfully integrated multiple features into Schulkit, creating a comprehensive platform for high school students.
- Each feature seamlessly interacts with others, providing a cohesive and enhanced user experience.
- 🎯 Meeting Project Deadlines:
- Despite the challenges, we were able to meet project deadlines and deliver Schulkit on time.
- Our dedication and efficient project management allowed us to stay on track and achieve our goals.
- 💡 Innovative and Engaging Features:
- We introduced unique and innovative features that set Schulkit apart from other educational platforms.
- Our commitment to providing high school students with fresh and engaging tools for learning was a major accomplishment.
- 🎨 Intuitive UI/UX Design:
- We designed a user-friendly interface that resonates with high school students.
- The intuitive design of Schulkit enhances usability, making it easy for students to navigate and access the features they need.
📖What we learned
- 😅 Overcoming Challenges as Opportunities:
- Developing Schulkit presented various challenges, such as time constraints, technical complexities, and feature differentiation.
- We learned to approach these challenges as opportunities for growth, problem-solving, and creativity.
- 💡 Importance of User-Centric Design:
- We learned the significance of putting the needs and preferences of our target users, high school students, at the forefront of the design process.
- User feedback and usability testing played a vital role in shaping the features and interface of Schulkit.
- 👥 Effective Project Management:
- Managing a complex project like Schulkit taught us the importance of effective project management.
- Planning, setting realistic deadlines, and coordinating tasks among team members were crucial for successful implementation.
🔮What's next for Schulkit
- 💻 Integration with Learning Management Systems:
- We plan to integrate Schulkit with popular learning management systems used in schools.
- This integration will streamline the adoption and usage of Schulkit, enabling seamless integration into existing educational frameworks.
- 📈 Data Analytics and Personalized Learning:
- Schulkit will leverage data analytics to provide insights into student performance and personalized learning recommendations.
- By analyzing user data, we can tailor the learning experience to individual students' needs and offer personalized study resources.
- 📱 Mobile App Development:
- We recognize the importance of mobile accessibility, and thus, developing a dedicated mobile app for Schulkit is on our roadmap.
- The mobile app will allow students to access Schulkit's features conveniently from their smartphones or tablets.
Log in or sign up for Devpost to join the conversation.