Skip to content

damoresa/taskmanager-frontend

Repository files navigation

Task manager frontend

Build Status Coverage Status Quality Gate Status

Task management application that features an Angular frontend and a NodeJS backend with a MongoDB database.
The backend is designed to be deployed on Heroku on a free or hobby dyno and is thought for individual use - as in one user per application instance as of 28/11/2017 - so most of it's provided tooling is either used or recommended. On the other hand, the frontend is designed to be deployed on any CDN like surge.

As of 5/12/2017 the application goes through TravisCI and Coveralls and is automatically deployed to surge. Unit tests are not yet implemented tho.

As of 6/12/2017 the frontend application is multiplatform and works in the browser, on desktop and on Android devices with the same source code. Cordova is used for mobile integration and electron is used for desktop integration.

As of 08/12/2017, the Karma and Jasmine unit tests have been implemented, but no template validation has been implemented - ie, accessing the DOM objects from the unit tests context. Coveralls has been integrated and the coverage result is displayed.

As of 25/12/2017 SonarCloud support has been implemented.

The purpose of the application is to actually help myself manage my own time in order to be able to analyze certain scenarios.

Project structure

The project contains the following folders:

  • Config: Webpack configuration files. The current build supports an electron build in order to deploy the frontend application as a desktop application.
  • karma: Karma environment configuration.
  • src: application sources.

Frontend

The frontend application has been built with Angular and Webpack. This frotend features:

  • Router: simple routing and lazy routing.
  • Forms: reactive forms with validations.
  • Common: image and directive usages.
  • Http: http requests and RxJS usage, wrapped to provide JWT support.
  • Components: contains grid, pagination, toast and modal reusable and configuratble components.
  • Multiplatform: supports electron and Cordova out of the box: an electron desktop client and a Cordova Android apk are released with every tag.

Webpack manages the application and resources bundling and minification.

Backend

As of 5/12/2017 the frontend has been moved away from the backend repository,
which can be found here.

Future features

You can check future features here.
In addition to those, you can expect these:

  • Success / error notification toasts on the different actions in order to improve UX.

Running the project

In order to execute locally, run the following script:

npm start

In order to build the sources with the JIT compiler, run the following script:

npm run build:production

In case you want to use AOT compilation, run this script instead:

npm run build:production:aot