Skip to content
This repository was archived by the owner on Mar 5, 2024. It is now read-only.

Latest commit

 

History

History
76 lines (58 loc) · 3.31 KB

File metadata and controls

76 lines (58 loc) · 3.31 KB

Document Management System

Original Document Management System (Django, JavaScript) rewritten in React / Next.js and deployed on AWS

A large organization is made up of numerous departments. Each department is responsible for storing its own documents, resulting in a large number of documents in the organization. As a result, document management and standardization become more complex, because each department has its own document management process, as well as its own document standard. Document Management System will function as a centralized system, streamlining the document management process.

dashboard-crop

Objectives

  • Streamlining the document management process (create, edit, cancel)
  • Maintaining single document standards throughout the organization
  • Easing employee document retrieval and management
  • Centralizing system for use by all departments in the organization

Technology used

Cloud Architecture

Overview

AWS-Overview

  • Compute
    • Elastic Container Service (ECS) for hosting the Document Management System
    • Elastic Container Registry (ECR) for storing application's images.
  • Database
    • Relational Database Service (RDS) with MySQL 8.0 for storing application's transactional data such as document's metadata, approval process delegation status, etc.
  • Storage
    • Simple Storage Services (S3) for storing documents managed by the system.
  • Security, Identity and Compliance
    • Cognito as identity and access management for the application.
  • Networking
    • Deployed in single region within 2 availability zones
  • Load Balance
    • Application Load Balancer (ALB) to distribute loads to each ECS task running in each Availability Zone.
  • Developer Tools
    • EC2 as a bastion host to access the resources inside the private subnet using SSH tunneling.
    • S3 for storing Terraform's state used to provision the resources.

Networking Overview

AWS-Network-Overview

  • Virtual Private Cloud (VPC) with 2 subnets in each availability zone (total of 4 subnets
    • Public subnet: Application Load Balancer and NAT Gateway
    • Private subnet: ECS task and RDS database

Application Load Balancer

AWS-ALB

Development setup

  1. Create .env file from .env.example
  2. Install required dependencies
    npm install
  3. Start development server
    npm run dev