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.
aPAS.mp4
- !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
Java
Spring Boot
PostgreSQL
Docker
Maven
Discord4J
- 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
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
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
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
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
- 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.
- Configure deployment on Heroku
- Add more code analysis tools like SonarQube, etc
- 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
- Chao-Ting Hung
- Prithvish Doshi
- Seeya Prabhumoni
- Shao-Yo Chao
- Vraj Chokshi