Skip to content

A fullstack project that allows coworking space owners to manage their workspaces, and users to make bookings.

License

Notifications You must be signed in to change notification settings

badger-99/workspace-reservation-back-end

Repository files navigation

Workspace

📗 Table of Contents

📖 Workspace

The Workspace app is a fullstack project that allows coworking space owners to manage their space and users to book a rooms. It is a Ruby on Rails app with a PostgreSQL database for the backend and React/Redux for the frontend.

This repository contains the backend part of the project. The frontend part can be found here

The project Kanban board can be found here

The initial state of Kanban board can be found here

Group consists of 4 students: 1 - Alfred Makongoro 2 - Zilola Nazarova 3 - Abdul Wahab Hussain 4 - Javier Hernandez

Links

🛠 Built With

Tech Stack

Key Features

  • User authentication
  • User authorization
  • User profiles
  • User roles
  • User bookings

(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:

  • GitHub account;
  • Git installed on your OS;
  • VSCode (or another code editor);
  • modern browser (supporting HTML5 and CSS3) is highly recommended;
  • Ruby installed;
  • Ruby on Rails installed;
  • Node.js and npm installed.

Setup

Clone this repository to your desired folder:

git clone git@github.com:badger-99/workspace-reservation-back-end.git

Install

Install the required gems

bundle install

Set your username and password to corresponding fields in database.yml.

Create the database by running the command

rails db:create

Run the migrations

rails db:migrate

Run tests

There are separated into several folders, and some are quite large so running all of them at once may cause some to fail. We highly recommend that you run the tests by their colders using the following commands:

  • Controller Specs

    rspec ./spec/requests/api/v1/registrations_controller_spec.rb

    rspec ./spec/requests/api/v1/reservations_controller_spec.rb

    rspec ./spec/requests/api/v1/sessions_controller_spec.rb

    rspec ./spec/requests/api/v1/workspaces_controller_spec.rb

  • Model Specs

    rspec ./spec/models/reservation_spec.rb

    rspec ./spec/models/user_spec.rb

    rspec ./spec/models/workspace_spec.rb

Usage

This is a back-end project. You will need either this front-end project or the api-docs to interract with it, or you can build your own front-end project. In all cases, you will need to start the server with

rails s

If working localy, check ./config/enviroments/development.rb and ./config/enviroments/test.rb and make sure that Rails.application.routes.default_url_options reflects the port that the local server is runing from (e.g. http://localhost:3000 ) so that image uploads can work.

If using the api-docs, make sure to set the local server in ./swagger/v1/swagger.yaml before navigating to the api-docs page at http://{your_default_url}/api-docs, or refresh the page if you make the change after navigting there.

If you are interested in how to set up your own Amzon S3 bucket to use for uploads you can refer to this guide by Taylor Huffman. The only deviation from the instructions is that we removed ./config/storage.yml and set the storage configurations in enviroment-specific files in the ./config/storage directory to prevent the development code from trying to access the S3 bucket.

(back to top)

👥 Authors

👤 Zilola Nazarova

👤 Alfred Makongoro

👤 Abdul Wahab Hussain

👤 Javier Hernandez

(back to top)

🔭 Future Features

  • Add more tests
  • Add time slots to reservations
  • Add payment system
  • Add additional user roles

(back to top)

🤝 Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the issues page.

(back to top)

⭐️ Show your support

If you like this project just star it!

(back to top)

🙏 Acknowledgments

We would like to thank Microverse for the knowledge and skills we have acquired in the Full-Stack Development Program, and for providing the resources that facilitated out learning..

We are grateful to all previous project reviewers for their advice. Thanks to them we were able to make improvements and increase the quality of our work.

We would like to thank Murat Korkmaz for making the Vespa - Responsive Redesign details, on which this project was based, available through the Creative Commons license of the design.

(back to top)

📝 License

This project is MIT licensed.

(back to top)

About

A fullstack project that allows coworking space owners to manage their workspaces, and users to make bookings.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages