Garager is an application based on the peer-to-peer economy like Airbnb. Users can list items from their garage for rent (like tools, equipment, camping gear, decorations, etc.). Users can also search for items they need and rent them when they become available.
- Authentication
- Search / Browse
- Post an Item
- Item View
- Messaages
- Accounts
- Payments: Stripe Integration
- Download Github repo:
git clone https://github.com/rpp33-boc-atlantic/garager.git
- Install packages:
npm install
-
In addition to running a server, a PostgreSQL database will have to be deployed and accessible to the server.
-
The address and coordinates are sourced via API service with Google Maps. To get API key: ...
-
To get Firebase API:...
-
To get Stripe keys:
- Create an account or Sign into your account
- Locate the For developers section in appropriate dashboard for publishable and secret keys. Live mode dasboard | Test mode dashboard
- The following are the scripts that are relevent for local development and deployment
- Set up .env file with all keys in the root directory
touch .env
- Run the webpack build script
npm run build-dev
- Start the server script
npm start
- Set up a local PostgreSQL database
psql postgres
\i <path to server/database/schema.sql>
- Update user, host and password to localhost when running on the local database
- Run the Jest test script
npm test
We used Github's Actions to set up Continuous Integration. The ci.yml instructions are triggered on Pull Requests before approval is allowed.
We used Github's Actions to trigger a new Docker image built on any merge to Main branch.
Members of the Atlantic Team:
Chloe Meinshausen (Project Manager) |
Joe Mitzman (Architecture Owner) |
Nick Gerrard (UI Owner) |
Joann Whang (Software Engineer) |
Rudy Sarmiento (Software Engineer) |
Wen Dai (Software Engineer) |
Thao Nguyen (Software Engineer) |
---|
- Sign up/ Log in with email and password
SignUpLogIn.mp4
- Link Facebook account with a registered email account. Prevent user from creating multiple accounts with the same email.
LinkAccount.mp4
- Post an item through multiple steps instruction with data validation and suggestion.
- The renter is able to view images, details, and availability of an item to book it for a range of dates. The renter may also suggest a price in case the item owner has enabled the Name Your Own Price feature.
- Proper error handling in case an item post has been deleted by its owner. The button to delete a listing is visible only to the owner.
-
List all items owned by a user.
-
View all current and upcoming rentals booked in the site and also review past transactions
- Checkout Session - Rent an Item: Users are able to rent an item or return to the app to cancel the checkout process.
- Setup a Connected Account: Users are able to create a Stripe connected account to be paid directly when an item of theirs is rented out through the checkout process. They can return to the app at different stages of creating the account without having to start from the beginning each time.
- Refund: Users are able to cancel a rented out item before the start date and recieve an immediate refund.