SergDerbst / tiny-tasks

Welcome to TinyTasks, the most basic task management app in the whole wide world!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TinyTasks

Welcome to TinyTasks, the most basic task management app in the whole wide world - no fancy UI, no mobile view, a very limited set of features and an even more limited set of tests. 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. The Contributor Tasks section contains some ideas if you don't know where to start.

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 begin with the frontend, you need to setup your development environment. You can find good and clear instructions on the Angular website under the Quickstart section.

Nothing else needs to be installed for the backend itself. However, the backend requires a PostgreSQL database server that is provided by a Docker container. Therefore, Docker is required. Here, too, you can find the information you need to set up the runtime environment, on the Docker website under Get Started.

Getting Started Frontend

The fronted was generated with Angular CLI.

Install dependencies

Run yarn to install the dependencies for the app. You can also add new dependencies via yarn add.

Development server

Run ng serve for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.

Code scaffolding

Run ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.

Build

Run ng build to build the project. The build artifacts will be stored in the dist/ directory. Use the --prod flag for a production build.

Running unit tests

Run ng test to execute the unit tests via Karma.

Running end-to-end tests

Run ng e2e to execute the end-to-end tests via Protractor.

Further help

To get more help on the Angular CLI use ng help or go check out the Angular CLI README.

Getting Started Backend

The backend was generated with Spring Initializr.

Running database server

Run docker-compose up -d to launch the PostgreSQL docker container.

Development server

Run ./gradlew bootRun for a dev server. The server is available under http://localhost:8080/.

Running tests

Run ./gradlew test to execute the tests.

Guides

The following guides illustrate how to use some features concretely:

Contributor Tasks

Feel free to focus on a single feature or aspect of the application. Here are some ideas if you don't know where to start:

  • Frontend application feature improvements:

    • a user can mark tasks as done
    • a user can assign due dates
    • a user can assign priorities
    • a user can add categories
    • a user can sort the list of tasks
    • a user can search for a specific task
    • a user can add a description for a task
    • a user can use markdown
    • a user's tasks are persisted in the browser's storage
    • ...
  • Frontend application UI improvements:

    • improve the overall design
    • improve the UI of an existing feature
    • add a mobile view
    • add mobile gesture support
    • ...
  • Frontend application structural improvements:

    • improve or introduce domain models
    • improve the existing code structure
    • add unit tests for existing features
    • add e2e tests for existing features
    • ...
  • Backend application features:

    • the application contains a RESTful API
    • the tasks are persisted in the database
    • ...
  • Backend application structural improvements / proposals:

    • improve or introduce an architecture (e. g. presentation, domain, data source)
    • provide interfaces for the domain layer / business logic
    • ...

As you can see, there's a lot to do. Just pick one of the ideas above or surprise us with one of your own improvements. Also, do not hesitate to contact us if you run into any problems. We are here to help.

You can simply create a new branch and start working on TinyTasks. Feel free to create a pull request if you would like to see your changes merged into the application.

About

Welcome to TinyTasks, the most basic task management app in the whole wide world!

License:MIT License


Languages

Language:TypeScript 46.3%Language:Java 39.2%Language:JavaScript 8.4%Language:HTML 5.3%Language:CSS 0.8%