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.
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.
In your command terminal, type the following to clone this repository: "git clone https://github.com/TomOverland/Cup-of-Sugar.git"
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"
By typing "npm install" you will download all of the dependencies required for this application.
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.
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.
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
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.
- 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
- 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
- VS Code - https://code.visualstudio.com/
For more information about the license, click the link below:
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!
This application was not developed with any tests.
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.
For more information about the application, please reach out to us!
Tom Overland
Nina Koller
Alexander McDonald
Steph Tomlin
Nou Vang