Wait-Less!
Where Priority Queues Meet Computer Labs
Inspiration
Have you ever been in a lab or recitation, where you kept raising your hand for help, but felt like you could never get help because you had to put your hand down, losing your place in line? TAs, I hear you. Let's leave the hustle of hand raising behind us... Instead of having a line, why not have a PriorityQueue? That's right, we're dropping the First In First Out, and giving heap where it's due!
What it does
Join the Queue
Log in (or register), with ur email and hop into the virtual line. No need to give your arms the unnecessary workout while you wait.
Track your spot
The queue shows your position in line. TAs will take you in based on their Compararators. They determine your priority, but you'll know exactly when your up next.
Heap Delivered
When it's your turn, you'll get the full experience before being taken off the queue. Now thats Priority Class experience!
How we built it
We leveraged React.JS, Firebase, JavaScript, Material UI and Tailwind CSS for our implementation.
Challenges we ran into
A lot of us were new to web dev, let alone React and Firebase. We encountered several obstacles:
- Wrestling with user authentication flows in Firebase
- Managing state across components with React Context
- Implementing React Router DOM for seamless navigation
- Learning to balance Material UI with Tailwind CSS styling
Despite these challenges, we persevered and achieved full functionality through collaboration and determination.
Accomplishments that we're proud of
- Created a fully functional queue management system from scratch
- Implemented secure user authentication and registration
- Developed a real-time priority queue system using Firebase
- Built an intuitive UI that makes queue management effortless
- Successfully integrated multiple modern web technologies
- Completed the project despite being new to many of the technologies
- Maintained our sense of humor throughout the development process 🌲
What we learned
- React.js fundamentals and component lifecycle management
- Firebase authentication and real-time database operations
- State management patterns and best practices
- The importance of user experience in queue management
- How to effectively collaborate on a web development project
- The value of perseverance when learning new technologies
- That even waiting in line can be made more efficient with the right data structure!
What's next for Wait-Less!
Short-term Enhancements
- Implement push notifications for queue updates
- Add estimated wait time calculations
- Create a TA dashboard with analytics
- Enable custom priority rules per course/session
Long-term Vision
- Expand to support multiple courses and departments
- Integrate with learning management systems
- Develop a mobile app for easier access
- Add video chat functionality for remote office hours
- Implement machine learning for smart queue optimization
Community Features
- Add a peer help system where students can help each other
- Create a knowledge base of common questions and solutions
- Enable feedback and rating system for continuous improvement
Join us in making office hours more efficient, one heap at a time! 🎓✨
Because sometimes the best solutions don't follow a FIFO philosophy!
Built With
- firebase
- javascript
- materialui
- react
- tailwindcss
Log in or sign up for Devpost to join the conversation.