https://github.com/vpomerleau/bike-park-client
https://github.com/vpomerleau/bike-park-server
Woodwork Bike Park Home Page Woodwork Bike Park Purchase Page showing Stripe Payment Element Woodwork Bike Park Purchase Confirmation Page Page, showing purchased products and option to check-in
- Authentication with Auth0
- Payments with Stripe
| Color | Hex |
|---|---|
| Brand Color (light) | |
| Brand Color (dark) | |
| Accent Color | |
| Text Color (on dark) | |
| Dark Background/Text Color (on white) |
To run this project, you will need to add the following environment variables to your .env file. See env.sample file for more details.
PORT
CLIENT_ORIGIN_URL
AUTH0_AUDIENCE
AUTH0_DOMAIN
STRIPE_SECRET_TEST_KEY
This project uses Node as package manager
See Node intallation instructions
npm install -g npmYou will need accounts with Auth0 and Stripe to obtain your environment variables. Make sure that values provided in the Auth0/Stripe dashboards perfectly matches the values entered in your environment variables, or the app might not load (will return errors).
Make a top level project directory to hold the client and server-side code
mkdir bike-park-project
cd bike-park-projectClone the client and server into the top level folder (two new folders will be created)
git clone https://github.com/vpomerleau/bike-park-client.git git clone https://github.com/vpomerleau/bike-park-server.gitGo to the server directory
cd bike-park-serverInstall dependencies
npm installSet up the environment variables by creating a new .env file from .env.sample
Modify your .gitignore file to cover your needs - Toptal's gitignore.io is a useful tool to get a template by searching for package manager, OS, etc. For this project, recommended to at least include Node.
You will need to install mySQL if you don't have it yet.
https://dev.mysql.com/downloads/mysql/
Make sure to remember the password for your 'root' user! For example by storing it with a password manager.
In order to access MySQL from the command line, you will need to update your PATH.
For Windows
- Right click on the Windows Start Menu and select System
- Under "Related settings" click on Advanced system settings
- Under the "Advanced" tab click on Environment Variables
- Select Path and click Edit
- Click New, and add the following. Replace X.X with your version of MySQL, for example 8.0:
C:\Program Files\MySQL\MySQL Server X.X\bin
- Click OK
- In your command line, you should now be able to run the command
mysql --versionand see the installed version of MySQL.
For Mac
- Open terminal and enter:
touch ~/.zshrc && open ~/.zshrc
- Add the following line to the file:
export PATH=$PATH:/usr/local/mysql/bin
-
Save and close the file
-
In a new terminal, you should now be able to run the command
mysql --versionand see the installed version of MySQL.
- Start your MySQL server on the command line, if it is not currently running.
mysqld
- Log into MySQL from the command line:
mysql -u root -p
You will be asked for your password
- At this point you should see the MySQL prompt:
mysql>
- Create a database called "bikepark"
CREATE DATABASE bikepark;
Copy knexfile-example.js and rename as knexfile.js. Add your mySQL 'root' password where indicated.
Run migration
npm run migrate
Seed database with example data
npm run seed
If you need to reset the database, you can drop the tables by running:
npm run migrate:down
In development mode (server restarts any time there are changes to the file) - uses nodemon
npm run devTo require manual restarts of server when code is update, use node instead
npm run startSee Client-side readme for detailed client installation instructions.
- Proof of concept homepage
- Auth0 integration (dev mode)
- Stripe integration (dev mode)
- User profile updates
- User controlled booking management (incl. transferring tickets to other riders)
- Unit testing
- Phases 2 to 1,000 to build a full-featured bike park management system
Distributed under the MIT License. See LICENSE.txt for more information.
Valerie Pomerleau - Twitter @PomerleauVal - LinkedIn @valeriepomerleau
(client): https://github.com/vpomerleau/bike-park-client
(server): https://github.com/vpomerleau/bike-park-server
Thank you to BrainStation for the knowledge, wisdom and support! In particular, I'd like to thank my May 2022 Web Dev cohort's educators (Daniil Molodkov, Michael Ti, Andrew Carolan) and TAs (Brishan King and Slobodan Zaja).
- Bike Lorem Ipsum from Bicycle Ipsum
- Logo design with Canva
- Mountain bike animation adapted from: Pure CSS bike animation
- Database schema planning with LucidChart
- Auth0 API docs
- Stripe API docs
- Stripe Dev Support on Discord
- Shields.io
- Awesome README template


