Giter Club home page Giter Club logo

tiny-tasks's Introduction

TinyTasks

Welcome to TinyTasks, the most basic task management app in the whole wide world - no fancy UI and a very limited set of features. Fortunately, you are here to save the day and improve parts of TinyTasks. Feel free to focus on a single feature or aspect of the application. You can find a list of open issues in the issue section of this repository.

Development

The application consists of a frontend and a backend. Both can be started separately. The frontend is Angular based and the backend is based on Spring Boot.

Before you can start developing you need to set up your development environment. You can find good and clear instructions on the Angular website in the Quickstart guide. The backend requires a PostgreSQL database server that is provided by a Docker container. Thus, Docker is required. You can find the information you need to set up the runtime environment on the Docker website under Get Started.

Frontend

The fronted was generated with Angular CLI. Run yarn to install the dependencies for the app. You can also add new dependencies via yarn add. Run yarn start for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.

To run the dev server without starting the backend use yarn start-local. The application will then store its data in the browser's local storage instead of sending the data to the backend.

Run yarn lint to lint your application and yarn test to execute the unit tests via Karma.

The application is tested using Cypress. To execute the end-to-end tests run yarn e2e or yarn e2e-local respectively.

Backend

The backend was generated with Spring Initializr. Run docker-compose up -d to launch the PostgreSQL docker container. Run ./gradlew bootRun for a dev server. The server is available under http://localhost:8080/.

Run ./gradlew test to execute the tests.

Let's go

As you can see, there's a lot to do. Just pick one of the issues and start coding. Also, do not hesitate to contact us if you run into any problems. We are here to help.

Simply start by forking this repository and working on TinyTasks. Please create a pull request after finishing your work.

tiny-tasks's People

Contributors

dependabot[bot] avatar finnfabians avatar fynnfeldpausch avatar gebeater avatar timsielemann avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

tiny-tasks's Issues

A user can search for tasks

As a user, I want to search all tasks so that I can find relevant tasks quickly.

Acceptance criteria

  • the user can search tasks via a search input
  • the search is performed instantaneously ("search as you type")

Optional acceptance criteria

  • the search can be reset with a single click
  • the user can deep-link to a search result (e.g. call URL?q=search and find the search pre-filled)
  • the user can use search operators (e.g. AND, OR, ...)

Additional information
We prefer quality over quantity. Clean code is a given. We expect all test to run.

A user receives emails for his tasks

As a user, I want to receive email notifications so that I don't forget my tasks.

Acceptance criteria

  • the user receives email notifications about his tasks
  • the email lists all tasks that are not done
  • emails are sent every day

Optional acceptance criteria

  • the user can configure the email interval
  • the user can set a due date for tasks and only receives emails for due tasks

Additional information
We prefer quality over quantity. Clean code is a given. We expect all test to run.

A user can login

As a user, I want to login so that I only see my own tasks

Acceptance criteria

  • the user can login to the application
  • the user can logout of the application
  • the user only sees his own tasks when logged in
  • the user is redirected to the login when not logged in

Optional acceptance criteria

  • the user can register
  • the user can reset his password

Additional information
We prefer quality over quantity. Clean code is a given. We expect all test to run.

A user can attach files to a task

As a user, I want to attach files to a task so that I can store additional information.

Acceptance criteria

  • the user can upload a file
  • the file is attached to the task
  • the file can be downloaded

Optional acceptance criteria

  • the user can see previews for images

Additional information
We prefer quality over quantity. Clean code is a given. We expect all test to run.

A user can set a due date

As a user, I want to set a due date for my tasks so that I can start working on my urgent tasks first.

Acceptance criteria

  • the user can set a due date for a task
  • the task list is sorted by due date
    • tasks with a due date go to the top of the list
    • tasks without a due date go to the bottom of the list

Optional acceptance criteria

  • the user can also set a due time for a task

Additional information
We prefer quality over quantity. Clean code is a given. We expect all test to run.

A user can mark a task as done

As a user, I want to mark tasks as done so that I can see which tasks have already been worked on.

Acceptance criteria

  • the user can mark a task as done
  • the task list is sorted by done status
    • tasks that are not done go to the top of the list
    • tasks that are done go to the bottom of the list
  • the user can clear the list of done tasks

Optional acceptance criteria

  • the user can mark a task as done by drag & drop to the list of done tasks
  • the user can set the task status with more details ("In Progress", "Blocked", ...)

Additional information
We prefer quality over quantity. Clean code is a given. We expect all test to run.

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.