TaskMuncher Overview
by John Vincent
Posted on March 30, 2021
TaskMuncher
TaskMuncher is a Task Management Productivity application.
TaskMuncher is the easiest way to get it done, whether you're making a shopping list, planning a holiday or managing multiple work projects.
Use TaskMuncher to organize and keep track of everything so you can get it all done and enjoy more peace of mind.
Live Deployment
Technical
-
TaskMuncher is built using the MERN stack. The front-end is built using React, Material-UI, Redux, HTML5, Sass and CSS3, the server-side using Node with Express as the web server and MongoDB as the database.
-
TaskMuncher is fully responsive, adapting for mobile, table and desktop viewports.
-
All routing is handled in the front-end by React
-
Extensive form validation and error handling is demonstrated throughout the app. On the front-end, field type, value, length etc is validated using HTML5, React and Redux. On the server-side, JOI performs detailed validation and a Mongoose schema provides further error checking for field values and uniqueness.
-
A fully-featured user registration system is integral to the application, with user registration and username / password recovery functionality provided.
-
TaskMuncher supports Google Authentication
-
Server-side email functionality is provided by a Nodemailer OAuth 2.0 implementation, using Google Gmail
-
An extensive API has been built to provide database access to the TaskMuncher App using Express, with 27 separate endpoints constructed.
-
TaskMuncher is fully unit tested on the front and server-side. For React testing, Jest has been used. For the server-side, Mocha and Chai, with extensive use of the Faker library to mock-out dependencies.
-
User authentication uses Json Web Tokens JWT
-
All client and server communications are performed using https.
-
TaskMuncher fully implements Google Analytics
-
TaskMuncher fully supports Google Webmaster Tools
-
TaskMuncher is deployed to an Ubuntu 20.04 droplet at Digital Ocean and kept running using PM2
-
TaskMuncher at AWS is also deployed to an Ubuntu 20.04 droplet at AWS for test purposes.
-
TaskMuncher resources are served from Nginx Server with a reverse proxy to pass certain requests to a Node Express Server.
-
The Ubuntu 20.04 droplet at Digital Ocean can only be accessed with SSH from a particular client. All other access is disabled.
Deploy TaskMuncher
TaskMuncher is deployed to a Digital Ocean Droplet.
Please see Configure and Deploy to Ubuntu 20.04 Droplet at Digital Ocean for deployment details.
Deploy TaskMuncher to a multi-container Docker environment at AWS
For details, please see Overview of Creating and Deploying a Multi-Container Docker Application to AWS
TaskMuncher Version Updates
Update TaskMuncher V2 to Webpack v4, Babel v7, Material-UI v3
Update TaskMuncher V3 to use BrowserRouter rather than HashRouter
Update TaskMuncher V4 to Progressive Web App
TaskMuncher Updates
Add TaskMuncher to Material-UI Showcase
Deploy TaskMuncher to AWS
Maintenance
The following describe tasks required for the maintenance of TaskMuncher at Digital Ocean.
Update SSL Certificates to Ubuntu at Digital Ocean
Maintaining Droplets at Digital Ocean
Website Validation
The following describe tasks required for the validation of TaskMuncher at Digital Ocean.
TaskMuncher Website Validation
Client Technologies
Server Technologies
Production Deployment Technologies
Production Problems
TaskMuncher React Production Issues
Testing Deployment
For a simple application deployed from a single Github repository:
Wireframes
Wireframes built using Balsamiq may be downloaded here