-
Notifications
You must be signed in to change notification settings - Fork 0
Development
Andebugan edited this page Apr 30, 2024
·
10 revisions
This bot is created out of frustration over inability of many existing planning and collaboration software to perform their task efficiently. Main objectives of this project are:
- Base planning API for:
- personal task management - to not waste your time
- group task management - to not waste others time
- smart planning - to plan more efficiently
- smart reminding - to remind yourself of things to be done
- Telegram bot interface for:
- telegram goodies - ability to reference messages in tasks, usage of bot in groups and etc.)
- easy access - if you have telegram you can use planning app via bot no strings attached
- general tasks - basic planner functionality, user should be able to create and track progress/completion of a task via provided tools
- tasks with time limitations - most of real life tasks have deadlines in one way of another and other tasks start with delay, user should be able to create and work with such time limitations and they should have influence on other time tasks (can tasks overlap and etc.)
- repeating tasks - some tasks repeat periodically like buying food, paying for rent and etc., user should be able to create a repeating tasks with consideration of different types of repeating (daily, monthly, several days each week and etc.)
- group tasks - some tasks require other peoples contribution in order to be completed, user should be able to create tasks that track and manage activity of several people
- Users
- creating and managing user account
- access management - users should not be able to have access to other users tasks without specific permission and there should be ways to obtain such permission
- Tasks
- basic task operations
- create
- from zero
- from template
- from copy
- select
- by id
- by name
- by description
- by deadline
- by repeat
- by remind time
- by length
- by people (if group task)
- by completion
- update selected
- all fields
- specified fields
- create
- planning
- automatic planning on free time
- take in account working/sleeping hours
- reminding
- enable/disable reminders
- group notifications
- smart notifications - closer deadline means more reminding and restless pinging after you failed to do your tasks in time
- basic task operations
User data structure:
- id
- username
- security hash
- planning rules
- list of working days (day/busy hours)
- sleeping schedule (day/sleep hours)
- exceptions (day/hours)
Task data structure:
- id
- name
- description
- deadline ("enabled" setting included in field)
- length (how much time needed to complete before deadline)
- repeat length ("enabled" setting included in field)
- remind time ("enabled" setting included in field)
- connected tasks (ids/connection type)
- connected users (user ids/connection type)
Project is structured in three layers each responsible for specific task:
- telegram interface
- model
- repository
Telegram interface layer is responsible for communication with telegram API and basically user interactions. It doesn't perform any business tasks and works only as adapter for model layer.
Model layer is responsible for business logic - task CRUD operations, planning and reminding.
Repository layer is responsible for providing abstract database access API for model layer to use.
TODO:
- basic user account without planning rules (though there should be plugs for future implementation)
- CRUD
- basic task functionality
- CRUD
- basic telegram interface
TODO:
- task repetition
- task reminders
TODO:
- user planning rules
- task planning logic
TODO:
- user groups