Skip to content

CSC207-2022F-UofT/course-project-budgetbites

Repository files navigation

BudgetBites CSC207 Project (Group 90)

Are you a student at UofT and trying to find food around campus, but are tight on your budget? You have come to the right place, welcome to BudgetBites! This UofT-based application allows you to find budget-friendly food options at the UTSG campus. You can then search for restaurants and specific food items by a number of parameters such as cuisine type, price range, food type, etc. Not only will you be given customised food suggestions, but you will also make use of ourextensive budgeting feature: every time you buy food from a restaurant, your monthly budget will reflect the spending and you can follow your budget restrictions rigorously.

Above those features we used MongoDB and Java Swing to create a seamless graphical user interface and persistent functionality.

How to Build and Run BudgetBites

  • Ensure SDK version is 11.0.17 (See the image below and match it with Project Structure)

  • Go to the build.gradle file and check the dependency. If the dependency is correct then build the gradle again. Important for MongoDB to work.

Now that you have build the project, it is time to start the UI. Follow the steps in the next section to ensure that you correctly open the Java Swing UI

  • Go to src/Main/java/Main.java
  • Run the Main file, and new JFrame will be prompted. Enjoy the UI.

Final Pull Requests Document

Changes after Milestone 4

  • Added price range values in price preferences for filtering food items.
  • Added back buttons and made every frame interconnected for better navigation.
  • Made all pull requests with consistent titles and detailed descriptions of the modifications made.
  • Packaged all the code using ‘by CA Layer’ packaging strategy.
  • Extensively tested all functionalities, including corner (happy and unhappy flows) cases.
  • Followed the suggested Java naming style where all packages are in lowercase (e.g. entities), all classes and tests have capitalized first letters (e.g. PriceFilterInteractor), and all methods follow camel case (e.g. addFood).
  • Included explanatory Javadocs for every functionality and test case. Also added comments in non-trivial places for better readability.
  • Thoroughly used Github features such as pull requests, actions, branches and issues, while also learning and incorporating new features such as projects and discussions.
  • Identified and removed all code smells, addressed all IntelliJ warnings, and removed every redundant file.
  • Used design patterns such as Iterator, Simple Factory, and Builder based on feedback received.
  • Implemented Model-View-Controller architecture pattern in order to adhere to clean architecture and SOLID principles.
  • Apart from user login, use sign-up and restaurant filtering in Milestone 4, we implemented more functionality such as price-filtering food items in a specific restaurant, budgeting (including viewing and modifying budget), item cart (and making orders), viewing past orders, getting customised food suggestions.
  • Implemented Data Access Interfaces to allow use cases to interact with the database through dependency inversion to adhere with SOLID principles

About Us

We are the coders behind the planning, development, and testing of the BudgetBites project.

Group members:

  • Akshayan Jeyakumar
  • Aryan Goel
  • Aviral Bhardwaj
  • Darpan Mishra
  • Janel Gilani
  • Nathan Cai
  • Mann Thakkar
  • Vandan Patel

About

course-project-budgetbites created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages