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
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:
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.
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.
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.
The client is able to offer his customers a high performance scalable environment as per their choice, completely isolated or shared and is able to offer at multiple price points. The application helps client’s customers a clear view of all their data at a single spot allowing them to analyze org at various levels, map organization’s strategic goals to executable initiatives with measurable targets, manage the status and progress of various initiatives and helps optimize allocation of precious resources.
Portfolio - Can add, edit portfolio program and project
Resource Management - can add resources for the given fiscal year
Import and Export functionality, converted hrs data to percentage and percentage data to hrs