Git Product home page Git Product logo

todo-guru's Introduction

Hi there, I'm theexiile1305! 👋

Github | Twitter | Keybase.io | Homepage

Hi, I am Michael Fuchs, a passionate software developer from Germany. Furthermore I study M. Sc. IT-Security at the Munich University of Applied Sciences and work part-time as a Junior Site Reliability Engineer to administrate it services at the Munich University of Applied Sciences.

  • 🔭 I’m currently working on the landingpages for some charity organisation
  • 🌱 I’m currently resarching in the fields of strong identity management systems and zero trust networks
  • 👯 I’m looking to collaborate on some open source project prefered with data-privacy and it security
  • 💬 Ask me about anything here
  • 📫 How to reach me via Twitter, Mail (GPG prefered) or keybase.io
  • ⚡ Fun fact: Every month, over 5,000 new computer viruses are released.
  • 🔑 GPG Key: Download my public key here and verify it with the Fingerprint: 112D 2BBC 7AFF 2700 4F50  0CED 4E0A B42B A799 4506

todo-guru's People

Contributors

antonadamsson avatar nicolemjohnson avatar renovate[bot] avatar theexiile1305 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

entrealist

todo-guru's Issues

Update user email

Once the user is registered, they can update the email that they are registered under.

Acceptance Criteria: User has to already be logged in to change email. The new email replaces the old email in the database.

set an alarm

This could be a study function where the user wants to set aside 2 hours to study and the user sets the alarm in the app that will go off after 2 hours once started.

Implement Reminder

Implement reminder for task. For example push notification

acceptance criteria:

  • push notification
  • ability to set time of reminder
  • Save Button

Display task

User can look at a task.

acceptance criteria:

  • Task can be displayed
  • view for task which contains all components

Store on hard disk

Store data securely on the hard disk.

acceptance criteria:

  • All data are being stored securely on the hard disk.
  • Trade off between performance and security is choosen (OSWAP).
  • Using symmetric (AES-CBC) encryption with a key, which is derived PBKDF2.

User can create a task

A user can create a task.

A Task consists of:

  • task name
  • description
  • Due Date (optional)
  • Estimated time (optional)
  • Reminder (optional)

acceptance criteria:

  • Create button exists
  • description box
  • possibility to add due date, estimated time and reminder

Contact development team

A user can contact the development team for feature requests or bug reports.

acceptance criteria:

  • button contact
  • view for contact
  • user can fill out form for suggestions etc.
  • submit

Update dependencies

Update the all available dependencies, these are:

  • androidx.core:core-ktx:1.2.0 to 1.3.0
  • com.pinterest:ktlint:0.35.0 to 0.36.0
  • junit:junit:4.12 to 4.13

Change insert and update task dialogs

The insert and update task dialogs will include chips that will send the user to another fragment where they will choose the reminder and the category of the task if they would like.

Acceptance Criteria: Material io chips are implemented for reminder and category. user can click on the button and it takes them to a page where they can choose a date (for reminder) or a list (for category)

Attachment added to task

An attachment can be added and viewed in the task. For example the pdf of an assignment so the user can be reminded which assignment needs to be done and check how big the assignment actually is

Explanation of App pages

In the prototype there is a walkthrough for using the app. The user can skip the walkthrough with a "skip" button

acceptance criteria:

  • maybe just for first use (could be annoying in the long run)
  • short text with explanation
  • Next Button
  • Skip Button

Privacy Policy, licenses and impressum

A user can access the Private Policy, licenses and the Impressum of the app.

acceptance criteria:

  • button for Private Policy, licenses and impressum
  • view for Private Policy, licenses and impressum

User Logout

Once logged in, the user can log out.

Acceptance Criteria: The user can easily log out of the app. Once logged out, their information(tasks) is not shown.

Share task

A user can share task with another user.

acceptance criteria:

  • share button
  • user that task was shared with can see task

Tasks have categories

The user can set a task to a certain category. These can be shown in their own box or color. A separate page in the app is probably needed to show this feature

Task backup

Task are able to be backed up and therefore they can be uploaded to your cloud storage.

acceptance criteria:

  • view for setting up backup
  • backup to for example google drive or use aws service

User can update task

User is able to update information of task such as:

  • name
  • description
  • due date
  • estimated time
  • reminder

acceptance criteria:

  • update button
  • update view exists
  • Confirm update button
  • task is actually updated in system

Recommend app

The app could be recommended to a friends.

acceptance criteria:

  • view or button for sharing app

Reset Password

Once registered the user can reset their password.

Acceptance Criteria: User has to first be logged in order to reset password. User gives new password twice. New password is replaced in the database (also hashed).

Extra: User gets an email saying that their password has been changed.

Add Priorities to tasks

The user is able to set priorities for their tasks:
high priority (deadline is important or it should be completed asap)
low priority (deadline is flexible)

Question: How will the app treat high/low priority tasks different? Does is try to remind user more often? Or puts in users calendar?

Expand CI-Pipeline

As I developer I want to ensure that the code quality is gerat.

  • Acceptance criteria:
  • Automated unit testing.
  • Automated static code analysis.
  • Automated linting of code.

Check that reminder date/time is before due date

BUG: Deployed version of Sprint 1 allows the user to set the reminder of the task to after the due date. A check should be implemented so that this is not allowed

Acceptance Criteria: Reminder Date cannot be set after the Due Date

Share data with asymmetric crypto-system

A asymmetric crypto-system is used, when the user want to share the data with another one.

acceptance criteria:

  • All data is symmetrical encrypted stored and therefore the exchange have to be asymmetrical.
  • The private key should also be encrypted stored/saved.
  • The public key shall be distributed to all other users.
  • The whole exchange can be implemented like Diffie-Hellmann or PGP.

Data transportation encryption

There are data transportation encryption used.

acceptance criteria:

  • Only meta-data is unencrypted.
  • Using SSL/TLS encryption between the API-endpoint and the app.

User can delete task

The user can delete a task.

acceptance criteria:

  • delete button
  • ask to confirm deletion
  • task is actually deleted after confirmation

Label for estimated time in task

User needs to know how long the estimated time means.

Group agrees the time entered should be in hours.

Need to check if numbers such as 1.5 can also be entered and if not, this needs to be specified to user.

Acceptance Criteria: There is a label for user to know how the estimated time should be entered in hours. If time can only be entered in whole numbers, the user needs to be notified

Archive task

Task can be archived.

acceptance criteria:

  • button for archiving
  • view for archived tasks
  • "unarchive" tasks

Track time spent on task

User has the ability to track the time.
Maybe in form of a stop watch, which has start and stop button

acceptance criteria:

  • Start button
  • Stop button
  • Display time spent

Observe task of another user

A user can observe another users task.

acceptance criteria:

  • user can look at other users task
  • user has to share task first

Fragment that shows completed tasks

The user can go to a fragment where they see all of their completed tasks.

Acceptance Criteria:
All completed tasks are shown. Tasks that were deleted are not shown.

Extra: Could have a "completed on" text label included

User is able to login

After the user has registered, they can login into their account.

Acceptance Criteria: Username and password are compared to what are in the database. After a successful login, the user sees all of their info.

Most productive day

This function shows the user which day that week they were most productive. The metrics how this will be determined needs to be discussed. For example it cannot just be amount of tasks done but also in combination with how long the tasks take

Mark task done

Task has a checkbox which can be marked when user is done with the task.

acceptance criteria:

  • box to check
  • possibility to tick box

Tasks can be extended with subtasks

For example a gym routine:
The task is going to the gym, but within that task the user has subtasks like run 5 km, 20x3 pushup, 50x3 situps...etc. User can check off each subtask as its completed.

Could add a pie chart on page with percentage done

Notes for Tasks

User can add notes to a task

acceptance criteria:

  • Button to add note
  • text box to write the notes
  • Save button

Create README & LICENSE

A general description should be written in the Readme file. Furthermore badges for a quick overview should be added (CI-Pipeline, Codecov, Sonarcloud.io, license, release, etc.). Also the license file shall be created.

Define goals for certain time frame

The user is able to create a list for goals they would like to finish either that day/hour/week.
The app can tell user how far along they are in their list (either by time left or percentage)

User can register for an account

A user is able to register an account for the app.

Acceptance Criteria: The user can easily find how to register. They give their email, username and password. User puts password in twice to make sure the user put in the desired password. The account is saved in the database and the password is hashed in the database.

Scheduler to task

For bigger projects, a user might want to have a certain set time each day to complete it. The user can cut up the task in smaller tasks to help figure out how much time should be spent each day/week in order to complete it on time.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.