Examples
Sample Projects
Some contrived (but reasonable) examples.
Recipe tracker
Image courtesy of Recipe Keeper
Users
A group of friends that want to cook together e.g., roommates.
Problem
How do you keep track of what recipes you have tried, and which ones each person liked?
Proposal
A recipe planning and tracking application that allows users to:
- Enter recipes (imported from a recipe site or manually entered).
- Browse a collection of recipes, with pictures. Search your recipes and friends recipes.
- Rate recipes, and view what other users have rated.
- Generate a list of “most wanted” recipes, or “most popular” after the group has tried them.
- Extra: track food allergies and support automatic filtering of recipes.
Design
Technical aspects to consider.
- Android application, with screens for all of this functionality
- Multi-user, so each person has a profile (login/logout/edit).
- Local database for caching details (SQLite & file storage)
- Remote database for storing user data and recipes (Firebase)
- OAuth authentication using Google accounts (also Firebase)
Software design tool
Image courtesy of Visual Paradigm
Users
Software developers that are interested in collaborative design.
Problem
Collaborative tools aren’t tailored towards software design, so we end up trying to create UML documents in Google Docs (awkward). UML tools often don’t support collaborative, which would be incredibly valuable!
Our goal is collaborative UML drawings.
Proposal
An online tool that lets multiple people work together to draw UML diagrams in real-time.
- Can have multiple drawing canvases; on launch choose which one to open and work on.
- Canvases should have a name, date-created, date-edited. Anyone can edit anything.
- Drawing tools: draw shapes; draw lines to connect them; move shapes; change properties.
- Export canvas to JPG (PNG, other formats) for use in other applications.
- Extra: Templates so that you can draw a plain box-arrows diagram, or a specific UML diagram e.g., class diagram, component diagram. (Do not support all UML, but a small subset; focus on infrastructure to add more later).
- Extra: Support more diagrams by expanding the templates!
Design
- Desktop tool, since it’s more precise for drawing.
- Multi-user, so each person has a profile (login/logout/edit).
- Investigate
canvas
classes in Compose for drawing arbitrary shapes. - SQL database, since we expect a large collection of templates (predefined shapes) and think that’s a better approach.
- Will likely need a way to handle real-time updates for multiple users working on a document e.g., WebSockets.
Project Gallery
Showcasing some outstanding Winter 2024 projects.
Notify
Jack Li, Tom Pan, Jenny Zhang, Kevin Zhang
Discover Notify, a note-sharing application designed specifically for the University of Waterloo student community. Notify transcends traditional learning boundaries, creating a dynamic and collaborative educational environment where students can seamlessly share, access, and manage academic content.
SweetDreams
Rohun Baxi, Akshen Jasikumar, Yun Tao, Areeb Shaikh
This project intends to provide a convenient, one-stop solution for parents to upload and explore lullabies for their children, and for children to play their parents’ selected lullabies. This tool is made for parents and their young children, developed for a CS 346 project in Winter 2024. This app differes from other similar applications by adding an explore page linking lullabies from Youtube and publicly posted ones from other users. Core users will include parents who want to help their children sleep but are unavailable (busy, out of town, etc.).
Squash
Stefan Min, Michael Huang, William Behnke, Jason Li
Squash is an app that helps developers practice their debugging skills, developed for a CS 346 project in Winter 2024. Although we are inspired by applications like Leetcode, Squash differs from such apps through its focus on reviewing already completed code.
RemindMed
Gen Nishiwaki, Jacob Im, Jason Zhang, Samir Ali
With RemindMed, never forget to take your medications. With scheduled reminders, your list of medications, your list of doctors, and information on each medication, RemindMed helps patients stay organized and on top of their medications. With support patients and doctors, doctors have the ability to add their patients, send them their prescriptions with usage details, and then have reminders automatically scheduled. As a result, medications can be properly used, leading to improved care for patients, and more time for doctors to help others.
CalorieWise
Dongni Lu, Lynn Li, Peter Li, Yingjia Zhang
CalorieWise is a desktop app that aims to help users better track their diet in order to manage their health more efficiently. The app provides an easy-to-use calorie tracker, breakdowns of your nutrient intake, and an intake/exercise entry page for you to get an overview of your daily calorie consumption. Furthermore, the app recommends a healthy calorie total to better guide you on your wellness journey, which can be updated anytime. Welcome to CalorieWise!
AceInterviewer
Ryan Maxin, Derek Maxin, Marcus Puntillo, Jia Wen Li Email
Students and professionals alike have limited access to valuable feedback on their responses to common interview questions within their discipline, often leading to solo-preparation with limited feedback on their responses. Our app serves as a forum for common interview questions, responses, and community feedback. Users can answer common industry questions and submit them publicly to be reviewed with feedback.
TasteBud
Ayush Shah, Julie Ngo, Lavan Nithianandarajah, Neel Shah
TasteBud is an application that teaches beginner cooks how to cook recipes from different cuisines, but are unsure where to start. This project is being developed for the CS 346 course project in Winter 2024. It differs from other similar applications by using a progression learning method where users can learn the basics of cooking a specific cuisine and gradually increase their expertise. It solves the problem of overwhelming online cooking information and recipes, which often assume prior knowledge of cooking and have limited information on each of the steps for preparing a dish. Youtube videos and other social media platforms are also often too fast-paced and vague. Users are searching for a quick & convenient, user friendly, and fun way to learn cooking!
Univibe
Sowad Khan, Bahaa Desoky, Omer Faruk, Ali Faez
Univibe is a campus exploration app that helps students share and discover interesting places around campus, developed for a CS346 project in Winter 2024. This app will help students share their discoveries and help other students connect and learn more about their campus.
UWConnect
Sagar Patel, Ibrahim Kashif, Alex Yu, Eric Liu
UWConnect is an innovative platform designed to enhance the connectivity and collaboration among University of Waterloo students, faculty, and staff. By facilitating more direct communication and providing a centralized hub for resources and information, UWConnect aims to make campus life more integrated and accessible for everyone involved! Whether you’re looking to join a group related to your interests, find campus events, or connect with peers and professors, UWConnect is your go-to solution!