Skip to content

elric97/CalBot

Repository files navigation

example workflow DOI Made with License: MIT Platform GitHub issues open GitHub issues closed

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 <!one word title> <!deadline mm/dd/yyyy> <!hours needed> - To add events to your calendar
  • !show(still in development) - To arrange events in an optimised way according to the algo discussed in wiki

Technologies

java spring postgresql docker maven Discord4J

Java
Spring Boot
PostgreSQL
Docker
Maven
Discord4J

Commands

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
  • (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

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

Finish the pending work

  • Implement the Algorithm in class Controller(function: arrangeEvents).
  • Add more CRUD operations to give more flexibility to user to delete and edit events via chatbot.

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.

Team Members

  • Aditi Bhagwat
  • Anumit Garg
  • Palvit Garg
  • Rachit Sharma
  • Shree Ramasubramanian

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

Contributors 6

Languages