Giter VIP home page Giter VIP logo

metsanpeitto / ruby-on-rails_renting-service Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 0.0 5.41 MB

Renting service product where users can create products and appointments for others to rent these products, in this case boats.

Home Page: https://frozen-dusk-66130.herokuapp.com/items

Ruby 99.61% CSS 0.04% HTML 0.35%
ruby-on-rails rspec-rails testing-practices rswag devise pair-programming kanban-board

ruby-on-rails_renting-service's Introduction

microverse_final_project

Microverse

This is the final project of the Microverse curriculum. It consists of a backend built with Ruby on Rails and a frontend built withReactjs/Redux.

The project itself offers a service, the renting of a boat for a period of time.

We did follow the given design of the website, but personalized the content, i.e., instead of booking an appointment to try a motorcycle, we built an app to book an trip in a ship.

The user can manage ships and reservations. As well as explore the ones existing.

Even if we are a team of two people, we decided to build the project based on the requirements of the group of 5 people.

App Requirements

=======

API Documentation

API Documentation

Deployed Apps

Backend Frontend

=======

NOTE TO CODE REVIEWERS

In order to try the features exclusive for administrator signup with the defaul values.

Or input:

email as@as.com
password: 123456 

Kanban board screenshot

https://i.imgur.com/8G0sWBn.png

This project is composed by this repository and a frontend created with ReactJS.

Get the ReactJS App here

Visit the front end here

In order to run it locally this rails app should be initialized before the ReactJS app.

  • So Rails app will run on:
 http://localhost:3000
  • And the ReactJS app will run on:
 http://localhost:3001

There is also a chance that the front end app is already obtaining the data from the deployed Rails API.

=======

Built With

  • Ruby on Rails
  • Rubocop

=======

Prerequisites

To run this project you must to have ruby installed in your machine. If you don't have it follow the instructions here

=======

Getting Started

If you want a copy of this file go to the github repository and download it from there

Setup

git clone  https://github.com/Metsanpeitto/microverse_final_project.git
cd ./microverse_final_project

Install gems

bundle install

Add the secret key

In order to be able to run the database and make Devise working propperly, the user should go to the folder src/config/master.key and remove the key in there, then add:

c226854fe4a838c57265d7088709aa53

Apply migration (only if you generate a new migration file)

rails db:migrate

Usage

$ruby main.rb

Verify rubocop

$ rubocop -A

Install style lint

Run stylelint autofix

npx stylelint "**/*.{css,scss}" --fix

=======

Screenshots of how the frontend displays the data

Main page https://i.imgur.com/ueP13ao.png

Signup page https://i.imgur.com/DkMI117.png

Details page https://i.imgur.com/NOJezfx.png

Instruction for non technical persons

If you are non a technical person you can download the zip file.

  • To do that you have to go to the green button that says 'Code' and then press on it.
  • Choose the option 'Download Zip' and wait until it download.
  • Then you need to decompress it.
  • You will need to have Zip compress file software installed in your computer. If you don't have it you can download it from here https://www.7-zip.org/download.html
  • Do double click on the Capstone-1.zip and choose a folder where to place all teh decompressed files.
  • Once you are done decompressing, you can open the created folder.
  • In it you can double click on the index.html file and choose a browser to open it (For example google Chrome Browser).
  • Now you should be able to see the project.
  • Remember to use the mouse to navigate through the website. Also you can use the keys 'arrow up' and 'arrow down' of your keyboard to scroll up and down.

=======

Authors

๐Ÿ‘ค Abraham Rodriguez

๐Ÿ‘ค Akasha Rojee

=======

๐Ÿค Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the issues page.

=======

Show your support

Give a โญ๏ธ if you like this project!

=======

Acknowledgments

  • Microverse for giving me this chance
  • The amazing code reviewers for making me improve every day ๐Ÿ‘

=======

License: CC BY-NC 4.0 License: CC0-1.0

ruby-on-rails_renting-service's People

Contributors

metsanpeitto avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ruby-on-rails_renting-service's Issues

[1pt] Create the navigation bar

In the navigation panel, the user can see links to:
- Motorcycles/doctors/classes/items that you selected as a theme.
- "Reserve" form.
- "My reservations".
- "Add motorcycle/doctor/class/item that you selected as a theme" (if you are in a group of 4 people the link is visible to everybody).
- "Delete motorcycle/doctor/class/item that you selected as a theme" (if you are in a group of 4 people the link is visible to everybody).

[.5pt] BACKEND - Create scaffold for items

Generate the MC for the motorbikes
The item resource has the different parameters :

  • name
  • description
  • image
  • the background color that is based on the main color of the image.

[2pt] FRONTEND Create user manager

The user logs in to the website, only by typing the username (a proper authenticated login is a requirement if your group is made of 5 people).

[2p] FRONTEND - Create Delete Item page

Create the page for delete and Item. Only users with the role of "admin" can see the link to this page.
Once on the page, the admin can see a list with the names of all the items and a delete button beside it.

[2p] FRONTEND Create the Details page

When the user selects a specific item, they can see the details page with its full description (skip the "Rotate image" button).

In the details page, the user can click the "Reserve" button (in the design you can see the "Configure" button - please replace it with the "Reserve" button).
Details

When the user clicks the "Add item" link in the navigation panel they can see a form for adding a new item.

Make the app responsive, creating both mobile and desktop versions.

[2pt] FRONTEND - Create the navigation panel

In the navigation panel, the user can see:

1. Logo

2. Links to:

  • Items
  • "Reserve" form
  • "My reservations"
  • "Add item" form
  • "Delete item" prompt

Note: active link is highlighted

3. Social buttons

4. Copyright footer


Layout of navigation panel: items are displayed vertically

  • In desktop version: left sidebar
  • In mobile version: collapsible menu

[2pt] FRONTEND - Create the styling

Create the style following the guidelines given to us for the Microverse team.
We will use Scss and build it all by hand.

There must be a total configuration of the whole style of the page.

Buttons: Size, border, color, effects
Inputs: Size, border, color, effects
Fonts: Font family, size, color, spacing, line spacing
Cards: They must have background, size
Spacing: The padding and margin for the pages

There will be a general configuration that will be inherited for every component and page on the page, along with the specific style of each component that will need it.

[2pt] FRONTEND - Create the details page

On the details page, the user can see:

  1. Navigation panel component

  2. Item details

    View design

    Details

  • Information displayed in details card:

    • Photo of item
    • Name of item
    • Deposit amount
    • Data table: 4 rows of 2 columns (title and data)
    • Percentage APR
    • Color selection widget
    • Reserve button (instead of Configure button)
  • Layout of details card:

    • In desktop version: detail card is displayed horizontally with 2 columns (1 for photo and 1 for information)
    • In mobile version: details are displayed vertically

[2pt] FRONTEND - frontend-fixes

In this branch, Akasha has fixed any bugs and details that were found on the styling of the page.
After this branch is ready to merge Akasha has completed successfully all the tasks assigned to her. ๐Ÿ‘

[2pt] FRONTEND - Create the main page

On the main page, the user can see:

  1. Navigation panel component

  2. List of items

    View design

    List

  • Information displayed in list of items:

    • Title of list
    • Instruction to select an item from the list
  • Information displayed for each item card:

    • Photo of item with a coloured circle background
    • Name of item
    • Description of item
    • Share buttons
  • Clicking on item card opens the item's detail page

  • Layout of item card is vertical

  • Layout of items list:

    • In desktop version: list of items is displayed horizontally as a carousel with a maximum of 3 items at a time
    • In mobile version: list of items is displayed vertically

[2pt] FRONTEND - connect-and-fix

This is the last branch of the development process.
It will contain any change needed in order to let the app be deployed on Heroku and ready for production.

After this branch is successfully merged Abraham will be free of duties until the case of changes would be required by the code reviewer.
๐Ÿ‘

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.