Skip to content

aPAS - a personal agile scheduler used to manage scheduled as well as unscheduled events

License

Notifications You must be signed in to change notification settings

vaish68/CalBot

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Java CI with Maven DOI Made with License: MIT Platform GitHub issues open GitHub issues closed Check Style

aPAS

Logo

Introduction ๐Ÿ˜

Do you feel overwhelmed sometimes when you have alot of things to do?

"Achieving a small incremental goal is perceived as easier -- and more satisfying -- than maintaining the status quo" --Source

The agile sprint model follows something on similar lines to this above statement. So following this, we thought of bringing agile sprint model to personal life. aPAS takes the unscheduled events at beginning of each week as input and divide the task on user's plate on daily basis, by which he/she can easily able to finish tasks just before deadlines and it won't be overwhelming.

This model gives the true picture of how much of an assignment load someone has and how to further manage it. We bring to you exactly that to manage your everyday tasks with our discord bot. Do you ever want to find time for Leetcode and workouts amidst a very busy week full of assignments but just canโ€™t? Our discord bot will show you most optimised things to do each day to complete them and still find some time for unplanned activities.

Here's a short introduction video:

aPAS.mp4

Quick read

Project Vision

Algorithm

Design Docs explained

Developer's Guide

Commands

  • !oauth - To get the authentication link for calendar
  • !event - To display a list of upcoming events on your calendar
  • !add <!title> <!hours needed> <!deadline mm/dd/yyyy> - To add events to your calendar
  • !show - To show events in the upcoming week and display time needed to be dedicated to each event today
  • !update <!title> <!new hours needed> <!new deadline mm/dd/yyyy> - To update an already existing event with new number of hours and/or new deadline
  • !delete <!title> - To delete an event from your calendar

Technologies

java spring postgresql docker maven Discord4J

Java
Spring Boot
PostgreSQL
Docker
Maven
Discord4J

Getting started

  • Make sure you have the following things installed
    • Java 8
    • IntelliJ or Eclipse
    • PostgreSQL
    • Docker (optional)
  • Google Cloud Platform - We used Google calendar API by creating a project on GCP, Check Quickstart for setting up Google calendar APIs. The ./Credentials.json of the project is required for authenticating the user.
  • Discord Developer Application -We created a Discord Developer profile for configuring a Discord BOT
  • Environment variables can be found at applications.properties and Credentials need to be updated at credentials.json
  • The user needs to create a server on Discord, and then visit this link to authorise the Discord bot to get added to that server
  • (Optional) To start project using docker run the following command in main directory
docker build . -t 'image-name' //Don't forget the dot
docker run -dp 8080:8080 'image-name' //This will start app on port on 8080

Here's a demo video showing how to initialize the bot and the usage of all commands

Demo_Video.mp4

Description of the video:

  • Firstly, a new server is created and the bot is authorised to access the server
  • test-event-1 is created and it can be seen on the calendar
  • test-event-2 is created and it can be seen on the calendar
  • !event command shows all the upcoming events
  • @show command shows the deadline for this week (upcoming 7 days), and how much time to allocate to each event today
  • Trying to add test-event-2 again isn't allowed by the bot as it already exists
  • Updating number of hours and deadline for test-event-1 gets reflected on the calendar
  • @show command shows the deadline for this week (upcoming 7 days), and how much time to allocate to each event today, considering updated test-event-1
  • !delete command shows deletion of test-event-1 from the calendar
  • Trying to delete test-event-1 again shows error message as the event doesn't exist on the calendar anymore

Future Scope ๐Ÿพ

There are multiple dimensions to this project catering to the interests of Various developers. Please check CONTRIBUTING.md and CODE_OF_CONDUCT.md for contributing rules

If you are a front-end developer ๐Ÿ’ป

Currently aPAS has been configured to work with Discord as the GUI but given the structure of the project it can be easily extended for other platforms such as

  • Telegram
  • WhatsApp
  • Facebook

If you are a back-end developer ๐Ÿ› ๏ธ

Why just stop at Google calendar? Why not make it more user-friendly for all users with various calendars such as:

  • Samsung Calendar
  • Apple calendar Extending aPAS for these will require addition of service classes for these calendars

If you are an ML Enthusiast ๐Ÿง‘โ€๐Ÿ”ฌ

  • Why not use a voice-bot to set and manage events,Implementing this using an audio model can be an interesting extension to the project.
  • The priority algorithm can be personalized for a user based on the amount of time they spend on a particular task.

If you want to have a hang of DevOps

  • Configure deployment on Heroku
  • Add more code analysis tools like SonarQube, etc

Updates from previous version

  • Completed algorithm implementation for scheduling events
  • Added functionality to delete an event and update an existing event with new number of hours and/or new deadline
  • Added functionality to stop users from creating multiple events of the same name
  • Implementation of token authentication
  • Added testing support
  • Added unit tests to files and made them routinely execute on each push to master branch
  • Used code formatters and style checkers for the repository
  • Code coverage and automated analysis tools used to improve the quality of the repository

Team Members

  • Chao-Ting Hung
  • Prithvish Doshi
  • Seeya Prabhumoni
  • Shao-Yo Chao
  • Vraj Chokshi

About

aPAS - a personal agile scheduler used to manage scheduled as well as unscheduled events

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HTML 63.0%
  • Java 36.4%
  • Other 0.6%