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

https://github.com/tracymuso/book-shelf-app

This is a reading list app. It allows users to make a collection of books and with it make organized reading lists based on different genres. Books and reading lists can be set to either public or private. Public reading lists can have likes only. A user can like and comments on a certain book.
https://github.com/tracymuso/book-shelf-app

bootstrap ruby ruby-on-rails

Last synced: 5 months ago
JSON representation

This is a reading list app. It allows users to make a collection of books and with it make organized reading lists based on different genres. Books and reading lists can be set to either public or private. Public reading lists can have likes only. A user can like and comments on a certain book.

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)

**Book shelf** is a reading list app. It allows users to make a collection of books and with it make organized reading lists based on different genres. Books and reading lists can be set to either public or private. Public reading lists can have likes only. A user can like and comments on a certain book. Only a logged in user can add books, create reading lists and actively engage with the other content on the website.

## 🛠 Built With

### Tech Stack

Client

Server


  • Rails

Database

### Key Features

- **[Public and private reading lists]**
- **[Devise for user authentication]**
- **[Ability to delete books, reading lists and comments ]**
- **[Admin Users are moderators and have all access]**
- **[Authenticated users can make reading lists, add books and engage with other users content]**

(back to top)

## Website Mockup 📱 💻 🖥️
Coming soon

(back to top)

## Kanban Board

- I have divided each task for tracking progress of the project,
### Kanban Board
- [Kanban Board ](https://github.com/users/TracyMuso/projects/4)

(back to top)

(back to top)

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

## 🚀 Live Demo

# for the API
- [Live Demo coming soon :rocket:](https://livedemolink.com) :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
```
**Optional, if you have privacy concerns**
- 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=book_shelf_development
POSTGRES_TEST_DB=book_shelf_test

```
- Add `<% ENV['POSTGRES_PASSWORD'] %>` for your password, then add the rest in a similar way

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 3000 # # for serving the API on localhost:3000
```

Run tests
```
bundle exec rspec
```

(back to top)

## 👥 Authors (1 Micronaut)

👤 **Tracy Musongole**

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

## Future features

- Ability to add star ratings on a book
- Ability to follow users
- Ability to unlike books and reading lists
- Ability to create private book clubs with other users

(back to top)

(back to top)

## 🤝 Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the [issues page](https://github.com/TracyMuso/Book-shelf-app/issues).

(back to top)

## ⭐️ Show your support

Give a ⭐️ if you like this project!

(back to top)

## 🙏 Acknowledgments
- Myself

(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 3000`. This will run the server on `localhost:3000`. 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/).

- **How I can run tests?**

- After cloning repository, run `bundle` and then run `rspec test-file-directory` for a specific file or `rspec` to run all the tests.

(back to top)

## 📝 License

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