Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RoR Capstone Project - Budget App #1

Open
wants to merge 56 commits into
base: dev
Choose a base branch
from
Open

RoR Capstone Project - Budget App #1

wants to merge 56 commits into from

Conversation

cherelemma
Copy link
Contributor

Hello Dear CR ✋

I hope this message finds you well. I am submitting a pull request for your review and feedback on the implementation of the RoR Capstone project. I implemented the project requirements and ensure comprehensive test coverage. Also, I maintained the general requirements.

Project Requirements

Design

  • Should follow these design guidelines, including:
    • Colors.
    • Typography: font face, size, and weight.
    • Layout: composition and space between elements.

Interactions

  • Splash screen

    • A simple page with the name of the app, and links to the signup and login pages.
  • Sign up and login pages

    • The user should be able to register in the app with full name, email, and password (all mandatory).
    • The user can log into the app using email and password.
    • If the user is not logged in, they can't access pages that require the user to be logged in (all the pages described below).
  • Home page (categories page)

    • When the user logs in, they are presented with the categories page.
    • For each category, the user can see their name, icon, and the total amount of all the transactions that belong to that category.
    • When the user clicks (or taps) on a category item, the application navigates to the transactions page for that category.
    • There is a button "add a new category" at the bottom that brings the user to the page to create a new category.
  • Transactions page

    • For a given category, the list of transactions is presented, ordered by the most recent.
    • At the top of the page the user could see the total amount for the category (sum of all of the amounts of the transactions in that category).
    • There is a button "add a new transaction" at the bottom that brings the user to the page to create a new transaction.
    • When the user clicks on the "Back" button (<), the user navigates to the home page.
  • "Add a new category" page

    • The user fills out a form to create a new category, indicating their name and icon (both mandatory).
    • The user clicks (or taps) the "Save" button to create the new category, and is taken to the home page on success.
    • When the user clicks on the "Back" button (<), the user navigates to the home page.
  • "Add a new transaction" page

    • The user fills out a form to create a new transaction with:
      • name (mandatory)
      • amount (mandatory)
      • categories (mandatory at least one)
    • The user click (or taps) the "Save" button to create the new transaction, and is taken to the transactions page for that category.
    • When the user clicks on the "Back" button (<), the user navigates to the transactions page for that category.

Testing requirements

  • Create unit and integration tests for all the most important components of your RoR application.

Technical requirements

  • You should use Postgres as your database.
  • You should use a devise for authentication.
  • You should validate all user input to make sure that anyone with bad intentions cannot compromise your app.
  • You can use a view template engine of your choice (.erb, .slim, .haml).
  • The project should be deployed and accessible online.
  • Your database schema should reflect the ERD provided

General Requirements

@cherelemma cherelemma self-assigned this Sep 23, 2023
Copy link

@Munsa1 Munsa1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @cherelemma,

Good job so far!
There are some issues that you still need to work on to prepare your project for the final evaluation but you are almost there!

Suggested changes

Check the comments under the review.

Video Presentation Feedback 🎥

  • Great video presentation, it was great as your English was clear and concise. I would urge you to redo the video as you took your time and ended up rushing the video presentation at the end causing you to NOT finish the presentation well.
    If you think about it, this presentation is going to be watched by potential recruiters, and as such you want to have a well-recorded presentation.
    Also, you did NOT specifically HIGHLIGHT exactly what PIECE of CODE or FEATURE you found interesting to implement, this is required, so kindly do so.
    Otherwise great presentation, and good composure I would only advise you to speed up your presentation a LITTLE bit so you are able to finish within the given 5 minutes without rushing it at the end

You can use as many of my suggestions as you want. If there is anything you would like to skip - feel free to do that. However, I strongly recommend you to take them into account as they can make your code better._

You can also consider:
-N/A

Cheers and Happy coding!👏👏👏

Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.

Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

Comment on lines +1 to +33
<%= form_with(model: @entity, url: category_entities_path) do |form| %>
<div class = "app_header">
<a href ="<%= category_entities_path %>">
<i class="fa-solid fa-arrow-left" id="left-arrow"></i>
</a>
<p> New Transaction </p>
<a href="/logout" id = "logout" >
Logout
</a>
</div>

<div class = "form-container">
<div class="field">
<%= form.text_field :name, placeholder: "Name "%>
<% if @entity.errors.any? %>
<span class="alert">
<%= @entity.errors[:name].first %>
</span>
<% end %>
</div>

<div class="field">
<%= form.text_field :amount, placeholder: "Price "%>
<% if @entity.errors.any? %>
<span class="alert">
<%= @entity.errors[:amount].first %>
</span>
<% end %>
</div>

<%= form.submit "Save", class: "submit-button" %>
</div>
<% end %>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • As required the user should fill out a form to create a new transaction with:
    name (mandatory)
    amount (mandatory)
    categories (mandatory at least one)

At the moment only two fields are available because the category is being added automatically, kindly fix this.

Your form
image

Comment on lines +1 to +33
<div class = "app_header">
<a href= "<%= categories_path %>">
<i class="fa-solid fa-arrow-left" id = "left-arrow"></i>
</a>
<h2> Transactions</h2>
<a href = "/logout" id = "logout">Logout</a>
</div>

<div class="categories">
<% if @entities.nil? || @entities.empty?%>
<div class="no-record">
<p>No Transaction for this Category. </p>
<p>Please Add a Transaction</p>
</div>
<% else %>
<div class="total-amount">
<p>Total: <%= @category.total_transactions%>$</p>
</div>

<% @entities.each do |entity| %>
<div class = "transaction" >
<p><%= entity.name %></p>
<p>Price: <%= entity.amount %>$ </p>
</div>
<% end %>
<% end %>
</div>

<div class ="footer">
<i class="fa-solid fa-plus"></i>
<%= link_to 'New Transaction', new_category_entity_path, class: "footer_link" %>
</div>

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Kindly follow the given design so as to meet the requirements more. Here we need to make a small change.

Given design
image

Your design
image

  • Kindly change the color of the Add Category to match the given design
  • Kindly ensure the price for each transaction is aligned to the right as is in the given design

Note these changes apply to the categories form page, transactions page and form page as well

Comment on lines +5 to +6
<h2> Transactions</h2>
<a href = "/logout" id = "logout">Logout</a>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Kindly ensure you use the given font family for the entire app as this is a requirement. The given font is Proxima Nova Bold and not Arial which is currently being used

Comment on lines +16 to +22

## Trackable
# t.integer :sign_in_count, default: 0, null: false
# t.datetime :current_sign_in_at
# t.datetime :last_sign_in_at
# t.string :current_sign_in_ip
# t.string :last_sign_in_ip
Copy link

@Munsa1 Munsa1 Sep 23, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Kindly consider removing ALL commented lines of code from this file for a cleaner codebase

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants