Skip to content

Split the Check is a Ruby on Rails–based, social-driven web application that enables diners to view and share restaurant check-splitting policies. Users can search restaurants, vote on practices, and share experiences, promoting transparency, informed dining decisions, and rewarding customer-friendly establishments.

Notifications You must be signed in to change notification settings

michaelarg/Split-the-Check-Voting-Application

Repository files navigation

Split the Check Voting Application

Table of Contents

About The Project

Introduction

Split the Check is a social-driven web application designed to solve a common frustration diners face: restaurants that refuse to split the bill.

Because check-splitting practices vary widely and often depend more on the server than on official policy, diners rarely know what to expect ahead of time. The platform provides transparent, community-generated insights that help users make informed dining decisions.

Some restaurants are willing to split checks, while others refuse, causing inconvenience and negative dining experiences. Diners deserve to know these policies in advance, and restaurants that support customers should be recognized.

Split the Check offers a centralized platform where users can:

  • Search restaurants by name and location
  • View real-world voting data
  • Share experiences and opinions
  • Promote restaurants that prioritize customer satisfaction

The platform allows guest users to browse freely, enabling them to search for restaurants, view restaurant details, and see the current vote counts (Will Split vs Won’t Split). However, actions that influence community data require user authentication. To add, edit, or delete a restaurant, or to vote on a restaurant’s check-splitting policy, users must register or log in. This approach ensures data accuracy, prevents misuse, and maintains the integrity of all community-generated information.

Technologies Used and Architecture

Based on the project requirements and instructions, the Split the Check website is built using the following technologies and architectural components:

Core Framework and Architecture

  • Ruby on Rails (Rails): The primary web application framework.
  • MVC Pattern: The application follows the Model-View-Controller architecture with a clear separation of concerns.

Front-End and Styling

  • Tailwind CSS: Used for styling and layout consistency.
  • Partials (.erb): Used to refactor and simplify complex ERB and HTML.
  • turbo_stream: Enables updating vote totals in real time without a full page reload.
  • application.html.erb: Defines the global layout and structure of the website.

Data and Logic

  • Database Model: Restaurant information and both vote tallies (will split, won't split) are stored in a single table.
  • Model Validations: Ensures accuracy and data integrity.

Documentation and Testing

  • UML Diagrams: Includes a UML Class Diagram (Model and Controller) and a UML State Diagram (page flow).
  • Ruby MiniTest: Used for unit testing.
  • Test Types: Controller testing (routes and responses) and model testing (methods such as search and voting logic).

Features - Demo

Welcome to Split the Check: Mission Statement

Home Page


Restaurant List: Community Voting Overview

Restaurant Page


Search Restaurant Interface

Search Page


Individual Restaurant Detail View

Show Restaurant


Login/Create Required to Add a New Restaurant

New Restaurant Page


Login/Create an Account Required to Edit Restaurant Details

Login to Edit


Unauthorized Deletion Attempt (Permissions Check)

Unauthorized Delete


Login/Create an Account Required to Vote

Login to Vote


Sign-Up Page

Sign Up


Successful User Sign-In Confirmation

Login Successful


Contact

Author: Michael Arg.
Email: [email protected]

About

Split the Check is a Ruby on Rails–based, social-driven web application that enables diners to view and share restaurant check-splitting policies. Users can search restaurants, vote on practices, and share experiences, promoting transparency, informed dining decisions, and rewarding customer-friendly establishments.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published