Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/farida-hamid/melodyrentals-backend

Melody Rentals is a musical instrument rental application. Built with: Ruby on Rails, API, JWT-Device, and RSPEC.
https://github.com/farida-hamid/melodyrentals-backend

jwt-authentication rails-api ruby

Last synced: 29 days ago
JSON representation

Melody Rentals is a musical instrument rental application. Built with: Ruby on Rails, API, JWT-Device, and RSPEC.

Awesome Lists containing this project

README

        

logo

# 📗 Table of Contents

- [📖 About the Project](#about-project)
- [ Built With](#built-with)
- [Tech Stack](#tech-stack)
- [Key Features](#key-features)
- [Website Mockup 📱 💻 🖥️](#screenshots)
- [🖺 Entity Relationship Diagram](#er-diagram)
- [ Kanban Board](#kanban-board)
- [ React Frontend](#react-frontend)
- [ API Documentation](#api-docs)
- [🚀 Live Demo](#live-demo)

- [💻 Getting Started](#getting-started)
- [Setup](#setup)
- [Prerequisites](#prerequisites)
- [Install](#install)
- [Usage](#usage)
- [Run tests](#run-tests)
- [Deployment](#triangular_flag_on_post-deployment)
- [👥 Authors](#authors)
- [🔭 Future Features](#future-features)
- [🤝 Contributing](#contributing)
- [⭐️ Show your support](#support)
- [🙏 Acknowledgements](#acknowledgements)
- [❓ FAQ](#faq)
- [📝 License](#license)

# 📖 MelodyRentals Backend
![Melody Rentals-logo](./IMG_4089.png)

**Melody Rentals Backend** is a musicial instruments rental application where the user can register new accounts, login and reserve a set of different instruments. It is built and connected by using two different repos, including Back-end(Rails) and Front-end(React/Redux).

## 🛠 Built With

### Tech Stack

Client

Server


  • Rails

Database

### Key Features

- **[Musical Instrumetns List endpoint]**
- **[Devise authentication to access Reservations]**
- **[JWT Authorization upon login and register]**
- **[Admin Users can add and remove instruments]**
- **[Authenticated Users can reserve instruments]**

(back to top)

## Website Mockup 📱 💻 🖥️

(back to top)

## Kanban Board

- We are a **group of 5 people**, So we have devided each task for track of the project.
### Kanban Board
- [Kanban Board ](https://github.com/users/Farida-Hamid/projects/11)

(back to top)

## API Documentation

- The API documentation of the project [Melody Rentals API-Docs](http://127.0.0.1:3000/api-docs/index.html)
![api-docs](https://user-images.githubusercontent.com/101523582/215738304-fc6826cc-802d-45e6-b12b-7af872e623f1.png)

(back to top)

## :card_index: Entity Relationship Diagram
![er-diagram](https://user-images.githubusercontent.com/101523582/215735670-fbaca35e-fb40-4002-8a64-6a1a6ff66120.png)

## React Frontend
- The Frontend part of the project [Melody Rentals Frontend](https://github.com/Farida-Hamid/MelodyRentals-FrontEnd)

## 🚀 Live Demo

# for the API
- [Live Demo :rocket:](https://melody-rentals.onrender.com/api/v1) :smiley:

(back to top)

## 💻 Getting Started

To get a local copy up and running, follow these steps.
### Prerequisites

In order to run this project you need:
`Git` and `Ruby`
```
gem install rails
```

### Install

Install this project with:

```sh
bundle install
```
- Generate a secret key using `rails secret`
- Create a `.env` file with the following content:
```
POSTGRES_USER=postgres
# If you declared a password when creating the database:
POSTGRES_PASSWORD=YourPassword
POSTGRES_HOST=localhost
POSTGRES_DB=Hello_Rails_Backend_development
POSTGRES_TEST_DB=Hello_Rails_Backend_test
# Devise secret key
DEVISE_JWT_SECRET_KEY=Secret Key you generated
```

Create Database (Mandatory)

```
rails db:create
```

If you have made a migration then run this command

```
rails db:migrate
```
```
rails db:seed
```
### Usage

To run the project, execute the following command:

```sh
rails s -p 3001 # # for serving the API on localhost:3001
```

Run tests
```
bundle exec rspec
```

(back to top)

## 👥 Authors (5 Micronauts)

👤 **Farida Hamid**

- LinkedIn: [LinkedIn](https://linkedin.com/in/farida-hamid)
- GitHub: [@Farida-Hamid](https://github.com/Farida-Hamid)

👤 **Megha Bodke**

- GitHub: [@megha-n-bodke](https://github.com/megha-n-bodke)
- LinkedIn: [Megha Bodke](https://www.linkedin.com/in/megha-bodke/)

👤 **Tracy Musongole**

- GitHub: [@TracyMuso](https://github.com/TracyMuso)
- LinkedIn: [Tracy Musongole](https://www.linkedin.com/in/tracy-muso/)

👤**Elie Harfouche**

- GitHub: [@X-Elie-X](https://github.com/X-Elie-X)
- LinkedIn: [Elie Harfouche](https://www.linkedin.com/in/elie-m-harfouche/)

👤 **Bantealem Geto**
- GitHub: [Bantealem](https://github.com/Bantealem)
- Twitter: [Bantealem](https://twitter.com/BantealemG)
- LinkedIn: [Bantealem](https://www.linkedin.com/in/bantealem-geto-a301b9213/)

(back to top)

(back to top)

## 🤝 Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the [issues page](https://github.com/Farida-Hamid/MelodyRentals-BackEnd/issues).

(back to top)

## ⭐️ Show your support

Give a ⭐️ if you like this project!

(back to top)

## 🙏 Acknowledgments

I would like to thank:
- [Microverse](https://www.microverse.org/)
- Code Reviewers

(back to top)

## ❓ FAQ

- **How I can install rails?**

- You can follow the [official guide](https://guides.rubyonrails.org/getting_started.html#installing-rails) to install rails. If you have gem installed, you can run `gem install rails` to install rails.

- **How I can run this project?**

- After cloning repository, run `bundle` and then run `rails s` with option argument `-p 3001`. This will run the server on `localhost:3001`. You can change the port number if you want. Then you can use any API client to test the endpoints. For example, you can use [Postman](https://www.postman.com/) or [Insomnia](https://insomnia.rest/). You can also use the [API Documentation](http://127.0.0.1:3000/api-docs/index.html) to test the endpoints.

- **How I can run tests?**

- After cloning repository, run `bundle` and then run `rspec` to run the tests.

(back to top)

## 📝 License

This project is [MIT](./LICENSE) licensed.