/Organizarr

An application to help students create study groups and stay organized

Primary LanguageJavaScript

Organizarr

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!


Links

Deployed App on Heroku

https://dry-badlands-77030.herokuapp.com/



Github Repository

https://github.com/lesliejpatino/Organizarr



GIF of Application - Sign Up



GIF of Application - Create To Do



GIF of Application - Create Note



GIF of Application - Create Study Group



Table of Contents


Getting Started

Open your favorite web browser and enter the following web address to access.

https://dry-badlands-77030.herokuapp.com/


  • Compatible with these internet browsers

  • To see code HTML, any of these Text editors will work

Installation

To run this application, you will need Node and other dependencies:

  1. You will need to install Node.js. Here is a link below:

Download Node


  1. 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


  1. Next, install all the dependencies in the package.json. In command line, you can enter:

npm install

  1. Additionally, you can download mysql database to store and access data:

Download MySQL


  1. Lastly, you will need to download Insomnia for testing API routes:

Download Insomnia


Technologies Used


Contribution Guidelines

To contribute, please follow these steps:

  1. Fork this repository.
  2. Create a branch: git checkout -b <branch_name>.
  3. Make your changes and commit them: git commit -m '<commit_message>'
  4. Push to the original branch: git push origin <project_name>/<location>
  5. Create the pull request.

Alternatively see the GitHub documentation on creating a pull request.


Cloning Guidelines

To install this code, please use Github's guidlines to clone the repository


Github repository:

https://github.com/lesliejpatino/Organizarr


Code Snippets

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")
      }
    }
};

Learning Points

  • 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


Authors

1. Leslie Patino

Github

LinkedIn

2. Joshua Meza

Github

LinkedIn

3. Elliot Park

Github

LinkedIn


License and Acknowledgements

license

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!