Built Seed capital Investment Planning Application

Industry

Healthcare, Chronic care management

Technologies

NodeJS, Angular, TypeScript,REST ,SOAP,Web Services

Client Requirements

The client is a serial software entrepreneur, hedge fund, multi-family real estate, and venture capital investor. He wanted to provide a simulation tool to the customers.

The tool would create investor-ready reports when preparing for a capital raise. A UI platform with an interactive tool was built to meet this requirement. The tool will perform calculations based on the client's formulas and display the results dynamically on the user's screen.

Thinkitive Solution

Thinkitive Technologies assembled a team of experts in various domains including frontend, backend, testing, and DevOps engineering. The team was tasked with developing a web application in ReactJS and backend microservice APIs using Flask. Given the freedom to choose any technology for building the application, the team made the best use of this opportunity.

To build the entire application, the team leveraged various different services of AWS. For example, the team used AWS's Cognito service for user authentication rather than building from scratch. This service handles all authentication-related operations such as Sign In, Sign Up, Change Password, Reset Password, and more. This decision helped speed up the development process significantly.

The team decided to use AWS's DynamoDB service to store data since the data was unstructured. This highly scalable NoSQL database allows one to store unstructured data.

The team found that each client's required service could be built independently by adopting a microservice architecture. This approach made the application easy to scale horizontally, which was an important consideration for the project. Additionally, the microservice architecture speeds up the process as backend developers could work independently on different services. The microservices were dockerized and deployed to AWS's ECS service's cluster, which was hosted on AWS's EC2.

Custom Authorizer was built using Lambda service to protect the APIs from unauthenticated users. This ensured that API are secured and only authenticated users request was forwarded to the respective microservice.

The DevOps engineer created multiple CI/CD pipelines to streamline the entire process using AWS's CodePipeline service. These pipelines would get triggered automatically whenever a change would be merged into specific branches (master, stage, dev). Once triggered, these pipelines would deploy the application code to their respective locations, thus automating the deployment process.

The frontend/UI was built using ReactJS. All the core calculations of the tool were stored in the ReactJS application itself instead of the backend. This decision reduced the time spent performing API calls for the calculations, ultimately improving the application's performance.

Finally, the frontend application was hosted in AWS's S3 bucket. To improve the website's performance, the CDN service of AWS called CloudFront was used on top of S3. Finally, AWS's Route53 service was used to configure the custom domain for the website.

Technical architecture diagram of application development

Solution Highlights

  • The web application was built using ReactJS and integrated with back-end microservice APIs built using Flask.

  • AWS services like Cognito, DynamoDB, and ECS developed the application. Cognito was used for user authentication. DynamoDB was used for storing data. Whereas ECS was used for hosting the dockerized microservices.

  • The microservice architecture allowed for independent development and scalability of individual services.

  • Custom Authorizer was created using AWS's Lambda service to protect APIs from unauthenticated users.

  • Multiple CI/CD pipelines were created using AWS's CodePipeline service for automated deployment.

  • The core calculations were performed in the ReactJS application to reduce the time spent on API calls and improve performance.

  • The frontend application was hosted on AWS's S3 bucket and used AWS's CloudFront CDN service to improve website speed.

  • AWS's Route53 service was used to configure the custom domain for the website.

Value Delivered

  • A user-friendly interface where users can run scenarios and create investor-ready reports.

  • The application dynamically displays the output of calculations on predefined formulas.

  • A tool that can assist to prepare for capital raises by providing data and reports for potential investors.

  • Investor Return Summary shows the equity value of preferred, common, and management teams.

  • The application is easy to maintain and understand since it is built only using AWS services

  • Speed: AWS services such as Cognito, DynamoDB, and microservice architecture helped speed development. This eased the application scale horizontally.

  • Scalability: The microservice architecture and AWS services allowed for independent development of each service and easy scalability of the application.

  • Security: The Custom Authorizer created using AWS's Lambda service and API Gateway protected APIs from unauthenticated users, ensuring the application's security.

  • Automation: CI/CD pipelines using AWS's CodePipeline service allowed for automated deployment. This reduces the chances of human error and saves time.
  • Performance: Performing the core calculations in the ReactJS application reduced the time spent on API calls, improving the application's performance.

  • Accessibility: Hosting the frontend application on AWS's S3 bucket and using AWS's CloudFront CDN service improved website speed and accessibility.

Tools & Technologies

  • Frontend Tech: HTML, CSS, JavaScript, ReactJS

  • Backend Tech: Flask

  • AWS Services: Cognito, DynamoDB, S3, CloudFront, Route53, API Gateway, Lambda, ECS, EC2, SES, CloudWatch, CodePipeline, CloudFormation

  • Misc: Git, GitHub, Docker, Docker Compose, SonarCloud