/webapp

A secure, scalable web application using cloud-native technologies and DevOps practices. It features user account management, automated email verification with Google Cloud Pub/Sub, structured JSON logging, and CI/CD pipelines integrated with Packer for automated deployments and observability through GCP.

Primary LanguageTypeScript

Cloud Native Web Application for User Management

Unit Test and Build Integration Test Packer CI Packer image build Rolling Update

Project Overview

This project is a cloud-native web application that focuses on managing user accounts efficiently and securely. It leverages advanced cloud technologies and follows best practices in software development, deployment, and operations, demonstrating a deep understanding of cloud-native architecture and DevOps methodologies.

Linked Projects:

Key Features

  • User Account Management: Provides functionalities for creating, updating, and retrieving user account details with full security measures and data validation.
  • Automated User Verification: Integrates with Google Cloud Pub/Sub to handle events such as sending verification emails upon account creation.
  • Structured Logging: Utilizes JSON format for logging, ensuring that logs are easy to analyze and are systematically managed through Google Cloud Logging.
  • Event-Driven Architecture: Makes use of Google Cloud Pub/Sub for decoupling services, which enhances the application's scalability and responsiveness.

Technologies Used

  • CentOS Stream 8: Chosen for its stability and robustness as a server operating system.
  • Programming Language: NodeJS.
  • Database: PostgreSQL, integrated within the application through TypeORM for robust data management.
  • Google Cloud Services: Including but not limited to Google Cloud Pub/Sub, Google Cloud Functions, Google Cloud IAM, and Google Cloud Logging for comprehensive cloud functionality.

CI/CD and DevOps Practices

The project incorporates continuous integration and continuous deployment (CI/CD) pipelines that facilitate automated testing, building, and deployment processes:

  • CI Workflows: Automate the execution of unit and integration tests, security checks, and build processes upon each commit, ensuring that all changes meet quality standards before merging.
  • CD Workflows: Manage the automated deployment of the application to different environments, ensuring reliable and consistent deployment practices.
  • Packer: Used for building custom machine images that include the application and all necessary configurations, ensuring that environments are reproducible and consistent across deployments.

Installation and Running the Application

Contributing

License

MIT Lisence

Contact Information