We built this application with the busy student in mind. As students, we find ourselves overwhelmed with the amount of things we must keep track of. We realized that having our to-do items, notes, and access to study groups in one place would be a minor detail that would make a major difference!
Deployed App on Heroku
Github Repository
GIF of Application - Sign Up
GIF of Application - Create To Do
GIF of Application - Create Note
GIF of Application - Create Study Group
- Getting Started
- Installation
- Technologies Used
- Contribution Guidelines
- Cloning Guidelines
- Code Snippets
- Learning Points
- Authors
- License and Acknowledgements
Open your favorite web browser and enter the following web address to access.
- Compatible with these internet browsers
- To see code HTML, any of these Text editors will work
To run this application, you will need Node and other dependencies:
- You will need to install Node.js. Here is a link below:
- Once you have downloaded Node.js, you will want to download node package manager (npm). In command line, you can enter:
npm install -g npm
- Next, install all the dependencies in the package.json. In command line, you can enter:
npm install
- Additionally, you can download mysql database to store and access data:
- Lastly, you will need to download Insomnia for testing API routes:
- Javascript
- Node.js
- Express
- Express Session
- Express Handlebars
- MySQL2
- Sequelize
- Connect Session Sequelize
- dotEnv
- bcrypt
- Day.js
- MySQL
- Insomnia
To contribute, please follow these steps:
- Fork this repository.
- Create a branch:
git checkout -b <branch_name>
. - Make your changes and commit them:
git commit -m '<commit_message>'
- Push to the original branch:
git push origin <project_name>/<location>
- Create the pull request.
Alternatively see the GitHub documentation on creating a pull request.
To install this code, please use Github's guidlines to clone the repository
Github repository:
This code snippet shows our client side JavaScript executing a fetch request that hits the user login API and stores a user's username and password to the database
-
Async / await syntax is used to make promises easier to write
-
document.querySelector used to collect user-generated input from the login form
-
If statement is used to verify an email and password have been entered
-
Fetch() method used to do a POST method to api/user/login
-
document.location.replace to redirect the browser to a handlebar template
const loginFormHandler = async (event) => {
event.preventDefault();
const email = document.querySelector('#userEmail').value.trim();
const password = document.querySelector('#userPassword').value.trim();
if (email && password) {
const response = await fetch('/api/users/login', {
method: 'POST',
body: JSON.stringify({ email, password }),
headers: { 'Content-Type': 'application/json' },
});
if (response.ok) {
console.log("login successful")
document.location.replace('/dashboard');
} else {
alert(response.statusText);
console.log("login failed")
}
}
};
-
How to use Sequelize ORM
-
How to use handlebar templates
-
How to deploy on Heroku with MySQL
-
How to create API routes and models
-
How to work with a team to resolve git conflicts
-
How to create sessions to capture cookies and user information
-
How to use MySQL Workbench and Insomnia for testing API routes
1. Leslie Patino
2. Joshua Meza
3. Elliot Park
This project is licensed under the MIT license via UC Berkeley's Extension Program
Big acknowledgements and thank you to Jerome Chenette, Manuel Nunes, Vince Lee, Jeh-Yun Jung, and Hannah Folk for their support and guidance!