Before you can build and deploy this web application locally, you'll need to ensure that you have the following prerequisites installed:
For detailed information on the API endpoints, request/response formats, and usage examples, please refer to the API Documentation.
- We use Packer to create a custom Application AMI, based on Debian 12.
- Ensure AMIs are private and only deployable by you.
- AMI builds occur in the DEV AWS account and are shared with the DEMO account.
- Builds are configured to run in the default VPC.
- The AMI includes necessary components such as Java, Tomcat, or the correct Python version and libraries.
- The application binary and configuration files are included, and services like Tomcat are set to auto-start.
- MySQL/MariaDB/PostgreSQL is installed for development purposes only.
- On pull requests,
packer fmtis run for formatting checks. packer validateis run for template validation.- The workflow fails upon any error, preventing merges.
- Triggered when pull requests are merged, not on creation.
- Integrations tests are run, and application artifacts are built.
- The AMI is created with application dependencies, and artifacts are copied over.
- The built AMI is shared with the DEMO account.
- The web application uses RDS instances for databases in production.
- Local databases are used for integration testing.
- Autorun is set up using
systemdor other tools to wait forcloud-initcompletion.
- Application logs are streamed to CloudWatch.
- Metrics for API calls are captured in CloudWatch.
- Custom metrics count the API calls for each endpoint.
- Clone the repository:
git clone https://github.com/Romil-Tiwari1/webapp.git - Install dependencies:
cd your-repo npm install - Run the application:
npm start
- Node.js
- Sequelize (ORM)
- AWS Packer
- GitHub Actions
- AWS CloudWatch
- Deletion of user accounts is not supported.
account_createdandaccount_updatedfields are managed by the system.
This project is maintained by Romil Tiwari.
This project is licensed.