/Cup-of-Sugar

Full Stack peer to peer renting site built with React and MySQL. Deployed to Heroku.

Primary LanguageCSS

Cup of Sugar

Live Website.

Description:

Full stack CRUD application that uses React and Tailwind.CSS for the front-end, and Node, Express.js, Sequelize, and MySQL for the back-end. This application was built as a capstone project for the University of Minnesota Full-Stack Web Development Bootcamp by a cohort consisting of Tom Overland, Nina Koller, Stephanie Tomlin, Alexander McDonald, and Nou Vang. This project was bootstrapped with Create React App.

This website is a peer to peer rental application where users can post, rent, update, and delete items. For users to use the website, they must first create an account by signing up with Auth0 authentication (There is a known error where if the user signs in through Google, they will not get a valid JSON Web Token. Please "sign-up" with your google account). Once signed in, the user will be able to view rentable items in their area. The user will also be able to post a new item using the "Post an Item" link in the side nav-menu. After the user has posted an item, they can view a list of the items that belong to them which are rentable by viewing the "My Listings" link in the side nav-menu.

Table of Contents

Installation:

Step 1 - Make sure you have a code editor, MySQL Node.js, and Node Package Manager installed

The code editor I used was Visual Studio Code. It can be found here.
Node.js and NPM download can be found here.
MySQL can be found here.

Step 2 - Clone our repository

In your command terminal, type the following to clone this repository: "git clone https://github.com/TomOverland/Cup-of-Sugar.git"

Step 3 - Move to the correct directory

Once you are in the directory that you downloaded Cup of Sugar into, type the following in your command line: "cd Cup-of-Sugar.git"

Step 4 - Install NPM dependencies

By typing "npm install" you will download all of the dependencies required for this application.

Step 5 - Create your MySQL Database

You will need a local MySQL Database for testing, and if you plan on deploying to Heroku you will need to connect your JawsDB to your MySQL workbench. For a local MySQL database, you will want to create a database called "cupofsugar_db". Sequelize will create the user and item tables.

Step 6 - Create your Config file

You will need to create a config directory in your root directory, and create a config.json file inside of your config directory. These files are already included in the .gitignore so you don't accidently push your information to GitHub. You will need your username and password for your local MySQL connection.

Step 7 - Create your Auth0 and Formspree accounts

You will need to create an Auth0 account for the authentication. You can sign up for one here.

You will need a formspree account to route the contact form. You can sign up for one here

Step 8 - Start the application

Start the application by typing "npm run start" in your CLI. This will prompt Sequelize to create the item and user tables in your database. This command will concurrently start the web application on localhost:3000 and the backend server on localhost:3001. We've included a seed file if you'd like to seed information. Type "npm run seed" to store several users and items into your database.

Technology used

Back-End

  • Node.js - Used to install dependencies and to make command line scripts.
  • Express - Used in conjunction with MongoDB to create the backend of the website.
  • MySQL - Used as our Database
  • Sequelize - ORM used to communicate with MySQL
  • JawsDB - Used to connect MySQL to Heroku
  • Heroku - Used to host our application

Front-End

  • React - Used to create components and the front end of the website
  • JSX - Used in conjunction with React to create the front end of the website
  • CSS 3 - Used to style the website
  • Tailwind CSS - Used to structure the design of the site
  • Axios - Used to make API calls to our server
  • Auth0 - Used to authenticate users
  • Formspree - Used to handle form submissions

Built With

License:

License: MIT

For more information about the license, click the link below:

Contributing:

If you would like to contribute to our project, please create a new branch for the pull request. Once it has been submitted, we will review!

Tests:

This application was not developed with any tests.

Project Management:

We used a Trello board to organize our project. You can view that board here.

We presented our project to the Fall 2020 University of Minnesota Bootcamp cohort. You can view our Google Presentation here.

Contact:

For more information about the application, please reach out to us!

Tom Overland

Nina Koller

Alexander McDonald

Steph Tomlin

Nou Vang