StrategicIT ePMOLite Project Management

Overview

ePMOLite is a cutting edge multi-tenant, serverless, cloud based comprehensive IT PMO solution for small scale and middle scale organizations helping them to report progress on initiatives, track financials and inform their decision making and doing away with 20th century practices like relying on Excel spreadsheet, document and presentation documents. This project uses multiple AWS services to deploy the frontend and backend.

This product is available in multiple configurations, professional version as well as enterprise version. It is flexible enough to be deployed in a shared nothing or a shared everything architecture without code changes (except for database schema). Numino has worked from scratch on this product and delivered a high performance,available, secure and scalable application
Project Info

Category

Cloud Backend, Web Apps

Client

StrategicIT

Tags

Technology Stack

Architecture

The following is the architecture for enterprise users.
Each enterprise user gets a completely separate environment and secure https subdomain to provide isolation, in other words a shared nothing architecture. This environment is set up in a completely automated way from the UI which ultimately invokes a cloudformation script to set up EBS, API Gateway, Lambdas and the MySQL schema for the database. All schemas for the enterprise users are on the same RDS instance to optimize costs yet keep them isolated. Cognito is used for authentication and authorization by both the front end as well as back end using API Gateway lambda authorizer. Separate user pools and identity pools are set up for each enterprise user in Cognito.

The architecture for professional users is as follows: All professional users share the same front end but get their own secure subdomain. The front end built using Angular is hosted on EBS. The back end stack from API gateway to lambdas and database schema is completely separate for each professional user, thus providing isolation. There is a single Cognito user pool and identity pool for all the professional users.

There are 3 separate demo environments sharing a common backend but different front ends deployed on CDN/S3 as shown below:

Delivery Practices

Deployment
Deployment

The system is completely flexible to be deployed into multiple configurations. The front end can be deployed on S3/Cloudfront or on EBS. The front end and back end code are unaware of the exact deployment configuration. We can have one user pool and identity pool for multiple subdomains or have them completely separate. Each database schema can also be on a completely different RDS instance or one can share the RDS instance with multiple schemas, depending on the requirement of enterprise users.

Continuous Integration, Testing and Development Flow
Continuous Integration, Testing and Development Flow

Gitlab is used as the version control system. There are two repositories, the code for automating the set up of enterprise environments is a separate code base and the business related code is a separate repository, thus the two can follow their own life cycles. The build and deployment for enterprise users is completely automated and can be invoked from the UI.

Agile DevOps based delivery to meet market evolution
Agile DevOps based delivery to meet market evolution

Based on the product road map, this was delivered in small incremental sprint release cycles, our Product Delivery Engineers developed a modern angular frontend web application integrated with serverless services at the back end system.

Results

Product Screenshots