Skip to content

AdeshPawaroo/StudyDash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

311 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StudyDash

Live Link

Background and Overview

When studying for long periods of time, it is extremely easy to get distracted and start procrastinating. StudyDash is a minimalistic sleek dashboard app that will allow you to focus through various widgets such as a pomodoro clock, deadline reminders, as well as studying analytics.

StudyDash will also allow a user to listen to music while studying, add deadlines that also show up in a calendar to help users keep track of time and eliminate procrastination. Users will also be able to check how much time they have spent on breaks vs. studying. There is also a flashcards widget that will allow users to create flashcards to practice studying content.

Features

  • User Authentication

    • Users can login with a demo user or with their own credentials
    Screen Shot 2021-11-30 at 11 27 40 PM
    • Errors on login/signup show on incorrect submission
  • The app has 6 widgets to click on from the main splash page

    • These widgets include:
      • Deadlines

        • Users can create deadlines, cross them out, remove them or edit them
        Screen Shot 2021-11-30 at 11 33 41 PM
      • Calendar

        • Users can view and create events on calendar image
          const event = [];
          const [newEvent, setNewEvent] = useState({ title: "", start: "", end: "" });
          const savedEvent = JSON.parse(localStorage.getItem("savedData"));
          const [allEvents, setAllEvents] = useState([...event, ...savedEvent]);
          let errors;
          function removeDup(arr) {
              let result = []
              arr.forEach((item, index) => { if (arr.indexOf(item) == index) result.push(item) });
              return result;
          }
          function handleAddEvent() {
              if (!newEvent.title) {
                  errors = <p>Missing fields. Please fill out event fields</p>;
                  return errors;
              }
              let newEvents = [...allEvents, newEvent];
              setAllEvents(newEvents)
              let finalEvents = removeDup(newEvents);
              localStorage.setItem("savedData", JSON.stringify(finalEvents));
          }
          let objects = JSON.parse(localStorage.getItem("savedData"));
      • Pomodoro Clock

        • Users can start a timer based on their work/break minutes and the timer will display a ring when the time is up
        Screen Shot 2021-11-30 at 11 34 43 PM Screen Shot 2021-11-30 at 11 34 38 PM
      • Flashcards

        • Users can create, edit, use flashcards to help them study.
      • Music Playlist

        • This displays a lo-fi playlist from spotify that allows the user to listen to while studying. Users can play this throughout the web app
        Screen Shot 2021-11-30 at 11 37 48 PM
      • User Analytics

        • This includes a various statistics about the user like the amount of times the user has logged, the amount of hours/minutes the user has spent studying, the amount of hours/minutes the user has spent taking breaks.
          const lastLogin = new Date(this.props.currentUser.lastLogin);
          const date = new Date(this.props.currentUser.date);
          let totalTime = this.props.currentUser.timeStudied;
          const hours = Math.floor((totalTime / 60) / 60);
          if (hours > 0){
              totalTime -= ((hours * 60) * 60);
          }
          const minutes = Math.floor(totalTime / 60);
          if (minutes > 0) {
              totalTime -= (minutes * 60);
          }
          const seconds = totalTime;
          let tasksDone = []
          let activeTasks = []
          this.props.todos.forEach(todo => {
              if(todo.done){
                  tasksDone.push(todo)
              } else {
                  activeTasks.push(todo)
              }
          })

Technologies

  • MongoDB
  • Mongoose
  • Express.js
  • React
  • Redux
  • Node.js
  • HTML5
  • CSS3
  • Axios
  • JSON Web Tokens
  • Amazon Web Services (AWS)

Members

About

Study Buddy is an all-in-one studying app, for all of your studying needs.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors