Toilet-Surfing -- where chill people share their toilets with other chill people, inspired by the giving and laid-back culture of couch surfing and by good vibes of surfers in general.
First full-stack solo project. The whole site is contained on the root route /
, allowing for a seamless user experience and limiting database queries.
Logged-in users can create, update, and delete toilets as well as create and delete bookings to use toilets in the future.
Try the live site here.
Visit my site wiki to see the database schema, routes, user stories, and feature list (current and planned).
Toilet Surfing uses the following tools, frameworks, and key packages:
- AWS S3
- Bcryptjs
- Express-session
- Express-validator
- Express.js
- Hosted on Heroku
- Node.js
- React
- React Google Maps Api
- Redux
- Sequelize (with PostgreSQL)
Follow these instructions to run Toilet Surfing on your local machine. Note: image uploads and map functionality will not work without a valid AWS key and AWS secret and google Maps API key.
To run the Toilet Surfing application locally, refer to the following instructions:
git clone
this repocd
into the local clone of the repositorycd
into thebackend
folder andnpm install
- Create your own
.env
file inbackend
andfrontend
directories based on the.env.example
files there - Create a PostgreSQL user that matches the one you identified in your
backend
.env
file - Run
npx dotenv sequelize db:create
to create the database - If the sequelize module is not found, try running
npx dotenv sequelize-cli db:create
and replace sequelize with sequelize-cli for the rest of these commands - Run
npx dotenv sequelize db:migrate
to run the migrations - Run
npx dotenv sequelize db:seed:all
to seed the database - Open another terminal and
cd
into thefrontend
directory andnpm install
- Run
npm start
in both the terminal on your backend and frontend - The React server should open up a browser window with the correct address