logo

TrojanBytes

TrojanBytes is a web application designed to enhance the dining experience for USC students by providing a platform for sharing and browsing reviews of meals served at the university's dining halls—EVK, McCarthy, and Parkside.

With TrojanBytes, students can explore genuine feedback and ratings from their peers, ensuring they make informed meal choices before heading to the dining hall. The app also encourages community participation by allowing users to share their own experiences, recommendations, and thoughts on the dishes they've tried.

During my work on TrojanBytes, I worked with team members to implement a seamless and interactive platform that fosters smarter dining decisions and a more connected campus community.

Request access for source code!

WHAT:

CSCI 201 (Principles of Software Development) Group Project

WHEN:

Fall 2023


Tech Stack

Frontend:

  • Framework: React
  • Styling: React-Bootstrap
  • Navigation: React Router DOM
  • State Management:
    • Local Storage
    • React Hooks: useState(), useEffect()

Backend:

  • Development: Spring Boot
  • Data Handling: XML

Web Scraping:

  • Python for extracting data from USC Dining Hall website

APIs and Security:

  • API headers to bypass CORS

Database:

  • MySQL (used for storing user, review, and menu data)

Version Control and Collaboration Tools:

  • Zoom
  • Github & Git
  • Jira
  • Notion

Design Tools:

  • Figma

Development Tools:

  • Visual Studio Code
  • GitHub Desktop

Data Structures Used

  • Arrays
  • JSON object -> Map ()
  • ArrayList
  • Set
  • List
  • HashMap

Frontend

Login/Signup Page

React Features Used

User Profile Dashboard: Developed a clean, user-centric profile page to display personalized user information such as username and profile picture

add review

"Enjoyed an amazing meal at Parkside? ... Or faced some culinary disappointment at EVK?

Share your dining experiences and help fellow Trojans make better meal choices!"

add review

Backend

Databases

backend

Web Scraping

scrape

My team and I developed a web scraping solution to streamline menu data collection from USC's Residential Dining Halls. Using data from USC Hospitality's website, the scraper pulls information such as dining hall names, menu items, and dates into a structured database.

  • Extracted dining hall data by leveraging the website’s layout and identifying parent classes like fw-accordion-title-inner and hsp-accordion-container
  • Performed data cleaning by removing blanks and isolating menu item names for clarity.
  • Formatted the extracted data into a Python dictionary for structured processing and exported it to a MySQL database for further use.

This automation not only ensured accurate and efficient data retrieval but also enhanced the overall functionality of the project by providing up-to-date menu information for users.


Multithreading: A Key Feature

Multithreading plays a crucial role in ensuring seamless and efficient operation within the platform.

By leveraging multithreading, the system supports multiple concurrent actions, such as:

Multithreading is an essential feature that enhances the platform's scalability and reliability, supporting a dynamic and interactive environment for users.


Network Communication

The project implements essential networking functionalities to ensure a seamless and interactive user experience:

These networking capabilities are key to fostering user engagement and building a connected platform for sharing dining experiences.