Skip to content

eceCaliskan/cloud-native-document-management-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 

Repository files navigation

Carbon and Cost Aware Document Management System

Angular FastAPI Docker GCS CI/CD

A scalable, cloud-native Document Management System designed for modern engineering projects. The system solves challenges of duplication, version inconsistencies, limited accessibility, and poor collaboration found in traditional local/intranet-based document management.

Based on the research paper, Yu, J. (2024) ‘Design and implementation of Engineering Document Management Information System’, Proceedings of the 2024 5th International Conference on Big Data Economy and Information Management, pp. 136–142. Available at: https://doi.org/10.1145/3724154.3724177.


🚀 Key Features

  • Cloud Document Storage (GCS): Centralized, globally accessible storage.

  • Cost-Aware & Carbon-Aware Region Selection:

    • Cost-aware → chooses low-cost data centers
    • Carbon-aware → chooses low-emission / renewable-powered regions
  • Secure Role-Based Access using Firebase Authentication

  • Modern UI built with Angular, Angular Material & Bootstrap

  • FastAPI Backend with auto-generated Swagger docs

  • Dockerized Deployment (frontend + backend images)

  • CI/CD Pipeline through GitHub Actions


🏗️ Tech Stack

Layer Technology
Frontend Angular, Angular Material, Bootstrap
Backend FastAPI (Python)
Authentication Firebase Auth
Storage Google Cloud Storage
DevOps Docker, GitHub Actions

📦 Installation

Backend (FastAPI)

Generate Firebase Project -> Settings -> Service Accounts -> Private Key, download the file and put it in the backend folder

cd backend
pip install -r requirements.txt
uvicorn main:app --reload

API Docs → http://localhost:8000/docs


Frontend (Angular)

cd frontend
npm install
ng serve

App → http://localhost:4200/


Docker (Full App)

docker-compose up --build

🔧 Environment Variables

Create a environment.ts file in frontend/src folder:

export const FirebaseConfig={
        apiKey: your-api-key,
        authDomain: your-auth-domain,
        projectId: your-project-id,
        storageBucket: your-storage-bucket,
        messagingSenderId: your-sender-id,
        appId: your-app-id,
        measurementId: your-measurement-id
      }

📘 References

  • Husain et al., 2023
  • Yu, 2024
  • Hyun et al., 2024

About

A scalable, cloud-native Document Management System designed for modern engineering projects. The system solves challenges of duplication, version inconsistencies, limited accessibility, and poor collaboration found in traditional local/intranet-based document management.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors