0% found this document useful (0 votes)
31 views3 pages

CADDi Design Document

Uploaded by

Oscar Kemp
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views3 pages

CADDi Design Document

Uploaded by

Oscar Kemp
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Design Document for Manufacturing Communication Service

Introduction
This document outlines the design of an online service aimed at improving communication
between mechanical engineers, procurement teams, and factory workers within large
manufacturing companies. The proposed system facilitates photo sharing, annotation, and
threaded discussions to streamline issue resolution, such as inspecting product defects.

Assumptions
- Users are technically inclined but may not have advanced experience with digital tools.

- Time-to-market is critical; an MVP approach is prioritized.

- The system must scale to accommodate thousands of users per organization.

- Security and compliance (e.g., GDPR, ISO 27001) are required due to the sensitivity of
shared data.

- The current CADDi technical stack and cloud expertise are leveraged.

System Architecture
The system is designed as a cloud-based microservices architecture with the following
components:

1. Frontend: A responsive web application built with React, ensuring usability across
devices.

2. Backend: A REST/GraphQL API built with Node.js and Express.js for efficient request
handling.

3. File Storage: AWS S3 for secure image file storage, with metadata tagging.

4. Real-Time Messaging: WebSocket or Server-Sent Events (SSE) for live updates to


message threads.

5. Annotation Service: A dedicated service for managing annotations, with potential


integration of OpenCV.

6. Database: PostgreSQL for structured data storage, including user accounts, threads,
and annotations.

7. Search Engine: Elasticsearch to enable full-text search for threads and annotations.

8. Cloud Resources: Fully managed services on AWS for CI/CD, monitoring, and
performance scaling.
ER Diagram
The system uses a relational database to manage data. Below is a simplified Entity-
Relationship diagram:

Technical Stack
1. Frontend: React, TypeScript, TailwindCSS.

2. Backend: Node.js, Express.js/Fastify, TypeScript.

3. Database: PostgreSQL (with Sequelize ORM).

4. File Storage: AWS S3 with versioning and encryption.

5. Real-Time Features: WebSocket/SSE via AWS API Gateway and Lambda.

6. Search Engine: Elasticsearch.

7. DevOps: AWS CodePipeline, CloudFormation for Infrastructure as Code.

8. Monitoring: AWS CloudWatch, Datadog.


Non-Functional Requirements
1. Security:

- Encrypted communication using TLS/SSL.

- Role-Based Access Control (RBAC) for file sharing and annotation access.

- Secure file storage with AWS S3 and KMS encryption.

2. Performance:

- Content Delivery Network (CDN) for file delivery.

- Caching layers (e.g., Redis) for annotation data.

- Horizontal scaling for backend services via AWS ECS/EKS.

3. DevOps:

- Continuous Integration and Deployment (CI/CD) with AWS CodePipeline.

- Automated unit, integration, and E2E testing.

4. Monitoring:

- Comprehensive API latency and resource usage monitoring with AWS CloudWatch and
Datadog.

Trade-Offs
1. Time Pressure vs. Features: Focus is on core MVP features like photo sharing,
annotation, and threaded discussions, with advanced features deferred.

2. Technical Debt vs. Scalability: A scalable microservices base is built, but some shortcuts,
such as minimal error handling, may require refactoring.

3. Cost vs. Features: Fully managed cloud services are used initially to minimize
operational overhead, acknowledging higher short-term costs.

Next Steps
1. Develop a clickable prototype for initial user feedback.

2. Set up backend APIs and integrate file storage and annotation services.

3. Conduct a pilot program with a small user base to gather real-world feedback.

4. Iterate and scale the system based on usage patterns and user feedback.

You might also like