Skip to content
/ WillDo Public

Doing more while writing less with Angular and Spring MVC.

Notifications You must be signed in to change notification settings

NedAnd1/WillDo

Repository files navigation

WillDo, Shared Tasks App server build client dev client production

Doing more while writing less with Angular and Spring MVC.

Motivation

The Angular framework is a beast.
React is notorious as being easier to learn and use by developers,
while Angular is touted as being hollistic with many capabilites.

The complexity of Angular applications can be staggering,
and with this project we wanted to tame the beast so-to-speak,
as we forrayed into the world of Angular for the 1st time.

Angular applications can quickly become very verbose
with boilerplate code being repeated all over
for things as common as communicating with the server.

Our goal was to eliminate duplication across the client,
by harnessing TypeScript's powerful object-oriented capabilities,
while increasing ease-of-development, flexibility, and maintainability.

We felt this to be especially important,
since Angular is often geared towards businesses and large scale projects.

Architecture

For communicating with the back-end, I created a generic, extensible base service,
and the services responsible for each API endpoint only contain the logic that differentiates it from other endpoints,
which is often only the model and url.

In many Angular projects the "model" is simply an interface of basic properties,
because returning a true OOP object with constructors and methods isn't easy,
but the base service automatically marshals almost any model you throw at it.

This allows our models to encapsulate the logic multiple components would otherwise repeat,
and eliminates component dependencies on the server's API.
with support for the same kinds of property decorators used by Spring,
added to our models for resolving any differences between the client and server.

If the client is being built at a different pace, or the server is 3rd-party,
this design might be just what you need.

Application

Screenshot Task manager for your group/family, push and remind them from anywhere

This app aims to solve chore management within a group. Groups can be made up of friends, family, or roommates that need to manage recurring or one-off tasks. Our web application aims to provide a service that allows users to post, manage, and assign tasks with deadlines, custom notification management, and ease of use. This problem is meant to solve simple communication issues prevalent in groups with a variety of lifestyle habits.

We used Ionic on top of Angular for the progressive web app,
Spring MVC for the server, and Mongo for the database.

Execute runall on Unix or runall.cmd on Windows to build and run them all. Prerequisites: MongoDB Server, Java Development Kit, and Node.js

About

Doing more while writing less with Angular and Spring MVC.

Resources

Stars

Watchers

Forks

Releases

No releases published