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
-
Base URL
https://workspace-reservation.onrender.com
- User authentication
- User authorization
- User profiles
- User roles
- User bookings
To get a local copy up and running, follow these steps.
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.
Clone this repository to your desired folder:
git clone [email protected]:badger-99/workspace-reservation-back-end.git
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
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
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.
👤 Zilola Nazarova
- GitHub: @Zilola-Nazarova
- LinkedIn: in/NazarovaZi
- Twitter: @NazarovaZi
👤 Alfred Makongoro
- GitHub: @badger-99
- X: @AlfredMkg
- LinkedIn: in/alfredmkg
👤 Abdul Wahab Hussain
- GitHub: @githubhandle
- Twitter: @twitterhandle
- LinkedIn: LinkedIn
👤 Javier Hernandez
- GitHub: @wickathou
- LinkedIn: @javierjhm
- Portfolio: @End Design Co.
- Add more tests
- Add time slots to reservations
- Add payment system
- Add additional user roles
Contributions, issues, and feature requests are welcome!
Feel free to check the issues page.
If you like this project just star it!
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.
This project is MIT licensed.