Skip to content

An MVP (Minimum Viable Product) version of an app based on a mobile-first design where the user can share visited bars in the city with other users. Built with Ruby on Rails, Rspec, Capybara, Amazon S3, and Heroku.

Notifications You must be signed in to change notification settings

RossielCS/BarHops

Repository files navigation

Rails' Capstone Project

In this project I built a web app called 'BarHops' where the user can count how many times has visited a certain bar and then group them by categories or 'groups'. Also, I followed the given design which is Snapscan and I changed the content.

The main objective was to build an MVP (Minimum Viable Product) version of the app following business requirements.

Here is the user journey for the app:

  1. The user logs in to the app, only by typing the username.
  2. The user is presented with a profile page that includes links to:
  • "All my transactions".
  • "All my external transactions".
  • "All groups".
  1. When the user opens "All my transactions" page:
  • Total amount is displayed at the top.
  • A list of all transactions created by the logged-in user is displayed (sorted by most recent).
  • Each transaction displays its name, amount and date, and an icon of the group it belongs to.
  • An action button "Add new" is displayed.
  1. When the user opens "All my external transactions" page:
  • A list of all transactions that are created by a logged-in user but not assigned to any group (sorted by most recent).
  1. When the user opens "All groups" page:
  • A list of all groups is displayed in alphabetical order.
  • Each group displays its icon, name, and creation date.
  • Each group is clickable and opens the "Group transactions" page.
  • An action button "Create new" is displayed.
  1. When the user opens the "Group transactions" page:
  • A list of all transactions that belong to that group is displayed.
  • Each transaction displays the name of the author of the transaction.
  1. When the user opens "Create new group" or "Add new transaction" page:
  • A form with all necessary fields is displayed.

Screenshot

screenshot

screenshot

screenshot

screenshot

screenshot

Live Demo

You can try it here.

🔨 Built With

  • Ruby 2.7,
  • Rails 5.2.4,
  • Bootstrap 4.5,
  • Rspec 3.9,
  • Capybara 2.15,
  • Shoulda-matchers 4.0,
  • Webdrivers 4.0,
  • Amazon S3 (Amazon Simple Storage Service),
  • Rubocop 0.79.0

💻 Getting Started

To get a local copy up and running follow these simple example steps.

Prerequisites

You need to install:

Setup

  1. Clone the repository.
  2. In your OS terminal search the repository's address and to install gems run:
    $ bundle install
  3. To setup database $ rails db:create $ rails db:migrate
  4. Then start Rail's server
    $ rails server

Usage

  • Open http://localhost:3000/ in your browser.
  • Follow the instructions.

Run tests

Unit tests for:

  • Models Associations.
  • Models Validations.

Integration tests for:

  • Authentications.
  • Attendances.
  • Groups.

In your terminal search the repository's address and run:
$ rspec --format documentation
It will provide you well-organized output on your terminal with information about the tests.

Deployment

To deploy on Heroku you can check this tutorial from the Odin Project.

After pushing the last changes to the remote repository, follow this steps:

  1. $ heroku create
  2. $ git remote
  3. Verify that you see heroku in the output.
  4. $ git push heroku master
    This will push the master branch.
    In case you want to push anothe branch you can run
    $ git push heroku <branch name>:master
  5. Migrate the database on Heroku
    $ heroku run rails db:migrate
  6. Open the app
    $ heroku open

💎 Features

  • Users can create an account.
  • Users can upload a profile picture.
  • It validates user name.
  • To login is necessary to submit the name.
  • The user can create attendances and groups.
  • When creating a group, the user can add a name and a picture.
  • It uses Amazon S3 in production.

👩 Author

Rossiel Carranza

🤝 Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the issues page.

Show your support

Give an ⭐️ if you like this project!

Acknowledgments

Design idea by Gregoire Vella on Behance.

📝 License

This project is MIT licensed.

About

An MVP (Minimum Viable Product) version of an app based on a mobile-first design where the user can share visited bars in the city with other users. Built with Ruby on Rails, Rspec, Capybara, Amazon S3, and Heroku.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published