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.
- 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
- Development
- Deployment
- 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.
- 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
- Create
.env
file from.env.example
- Install required dependencies
npm install
- Start development server
npm run dev