divine-archive

bysmp ten masta

Build a production-grade digital archive web application called "SMPN 10 E-Arsip Digital SATU ATAP MANIS MATA". Core features: 1. Authentication: JWT-based login with roles: Admin, Staff, Auditor. Admin can manage users. 2. Upload: Drag and drop PDF, DOCX, JPG, PNG. Maximum 50MB per file. Automatic OCR for scanned PDFs using Tesseract. 3. Metadata: Title, Document Number, Category, Date, Tags, Description, Retention Period. Full-text search on content + metadata. 4. Folder structure: Nested folders with permissions per role. 5. Audit log: Track who uploaded, viewed, edited, and deleted. Export logs to CSV. 6. Dashboard: Statistics on total documents, documents per category, storage usage, and recent uploads. 7. API: REST API with Swagger documentation for integration. Technical requirements: Frontend: React + TailwindCSS, responsive, clean government-style UI Backend: FastAPI + PostgreSQL Storage: S3-compatible object storage for files, Postgres for metadata Infrastructure: Dockerfile + Helm chart for Kubernetes, horizontal autoscaling QA: Unit testing + integration testing with 80%+ coverage CI/CD: GitHub Actions pipeline for building, testing, and deploying Security: File encryption at rest, virus scanning on upload with ClamAV, rate limiting, OWASP top 10 compliant.

Landing
Landing

Comments (0)

No comments yet. Be the first!

System Requirements

System Requirement Document
Page 1 of 4

divine-archive

Introduction

The "divine-archive" project, also known as "SMPN 10 E-Arsip Digital SATU ATAP MANIS MATA," is a production-grade digital archive web application designed to efficiently manage and store digital documents. This document outlines the system requirements for the project, focusing on user roles, document management, security, and infrastructure.

System Overview

The divine-archive system is designed to facilitate the secure and efficient management of digital documents within an organization. It provides a robust platform for document storage, retrieval, and management, with features such as role-based access control, full-text search, and detailed audit logging. The system is built using modern web technologies, ensuring scalability and security.

Functional Requirements

  • As an Admin, I should be able to manage users and their roles.
  • As a Staff member, I should be able to upload documents via drag-and-drop.
  • As a Staff member, I should be able to add metadata to documents.
  • As an Auditor, I should be able to view and audit records.
  • As a User, I should be able to search documents by content and metadata.
  • As a User, I should be able to navigate a nested folder structure with role-based permissions.
  • As a User, I should be able to view statistics on document usage and storage.
Page 2 of 4

User Personas

  • Admin: Responsible for managing user accounts and permissions.
  • Staff: Handles document uploads and metadata management.
  • Auditor: Focuses on viewing and auditing document records.

Visuals Colors and Theme

  • primary: #2A3A5E (deep navy blue)
  • primary_light: #4A5A7E (light navy blue)
  • secondary: #FF6F61 (coral)
  • accent: #FFD700 (gold)
  • highlight: #FFA500 (orange)
  • bg: #F4F4F9 (light gray)
  • surface: rgba(255, 255, 255, 0.9) (white with slight transparency)
  • text: #333333 (dark gray)
  • text_muted: #777777 (medium gray)
  • border: rgba(0, 0, 0, 0.1) (light black)

Signature Design Concept

The divine-archive homepage will feature an interactive galaxy map where each star represents a document category or feature. Users can click on a star to open a detailed view of the documents within that category. Dragging the map will rotate the galaxy, offering a dynamic and engaging way to explore the archive. Hovering over stars will highlight connections between related documents, enhancing the user's understanding of document relationships. This concept will be implemented using @react-three/fiber for 3D rendering and gsap for smooth animations and transitions.

Page 3 of 4

Interaction Model & Motion Direction

The landing page will utilize a "parallax" interaction model, creating a sense of depth as users scroll through the content. Layers of stars and document categories will move at different speeds, providing a visually rich first impression. Internal pages, such as dashboards and settings, will adopt a "static" model to prioritize clarity and readability.

Non-Functional Requirements

  • The system must support JWT-based authentication for secure access.
  • File uploads must be virus-scanned using ClamAV.
  • The system must comply with OWASP top 10 security standards.
  • The application should maintain 80%+ test coverage for both unit and integration tests.

Tech Stack

  • Frontend: React + TailwindCSS
  • Backend: FastAPI
  • Database: PostgreSQL
  • Storage: S3-compatible object storage
  • Infrastructure: Docker, Kubernetes with Helm for orchestration
  • CI/CD: GitHub Actions
Page 4 of 4

Assumptions and Constraints

  • The system assumes a stable internet connection for accessing cloud storage.
  • The application is designed to handle horizontal scaling to accommodate increased demand.
  • User roles and permissions are predefined and cannot be customized beyond the specified roles.

Glossary

  • JWT: JSON Web Token, a compact, URL-safe means of representing claims to be transferred between two parties.
  • OCR: Optical Character Recognition, a technology used to convert different types of documents into editable and searchable data.
  • OWASP: Open Web Application Security Project, a nonprofit foundation that works to improve the security of software.
  • CI/CD: Continuous Integration and Continuous Deployment, practices that enable teams to deliver code changes more frequently and reliably.
Landing design preview
Landing: View App
Login: Sign In
Dashboard: View Statistics
Users: Manage Accounts
Users: Assign Roles
Folders: Manage Structure
Folders: Set Permissions
Audit Log: View Records
Audit Log: Export CSV
Documents: Search Content
Documents: View Details