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:
- The user logs in to the app, only by typing the username.
- The user is presented with a profile page that includes links to:
- "All my transactions".
- "All my external transactions".
- "All groups".
- 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.
- 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).
- 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.
- 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.
- When the user opens "Create new group" or "Add new transaction" page:
- A form with all necessary fields is displayed.
You can try it here.
- 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
To get a local copy up and running follow these simple example steps.
You need to install:
- Clone the repository.
- In your OS terminal search the repository's address and to install gems run:
$bundle install
- To setup database
$
rails db:create
$rails db:migrate
- Then start Rail's server
$rails server
- Open
http://localhost:3000/
in your browser. - Follow the instructions.
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.
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:
- $
heroku create
- $
git remote
- Verify that you see heroku in the output.
- $
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
- Migrate the database on Heroku
$heroku run rails db:migrate
- Open the app
$heroku open
- 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.
Rossiel Carranza
- Github: @RossielCS
- Linkedin: Rossiel Carranza
Contributions, issues, and feature requests are welcome!
Feel free to check the issues page.
Give an ⭐️ if you like this project!
Design idea by Gregoire Vella on Behance.
This project is MIT licensed.