Skip to content
This repository has been archived by the owner on Mar 5, 2024. It is now read-only.
/ DMS-AWS Public archive

Document Management System rewritten in React and deployed on AWS

Notifications You must be signed in to change notification settings

phwt/DMS-AWS

Repository files navigation

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

About

Document Management System rewritten in React and deployed on AWS

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published