# Project Overview: EDMOS Document Management System ## 1. Introduction EDMOS is a full-stack document management platform designed for efficient document storage, retrieval, collaboration, and workflow management. The system is modular, scalable, and built with modern technologies for both frontend and backend. --- ## 2. Technologies Used ### Frontend (edmos-admin & edmos-frontend) - **React** (TypeScript) - **Vite** (build tool) - **Tailwind CSS** (utility-first CSS) - **React Router** (routing) - **@tanstack/react-query** (data fetching/caching) - **Jest** (testing) - **ESLint** (linting) ### Backend (edmos-backend) - **Laravel** (PHP framework) - **Composer** (dependency management) - **Pest** (PHP testing) - **L5-Swagger** (API docs) - **Sanctum** (API authentication) - **Scout** (search) - **Maatwebsite/Excel** (Excel import/export) --- ## 3. Project Structure ### edmos-admin & edmos-frontend - `src/api/` - API logic - `src/assets/` - Static assets - `src/components/` - Reusable UI components - `src/layouts/` - Layouts - `src/locales/` - i18n - `src/models/` - Types/interfaces - `src/pages/` - Main pages - `src/services/` - Business logic - `src/features/DocumentList/DocumentList.tsx` - Document list, filtering, sorting, bulk actions, preview ### edmos-backend - `app/` - Controllers, Models, Services - `config/` - Config files - `database/` - Migrations, seeders, factories - `public/` - Public assets - `resources/` - Views, JS, CSS - `routes/` - API, web, console routes - `storage/` - Logs, cache, uploads - `tests/` - Feature/unit tests - `vendor/` - Composer dependencies --- ## 4. Implemented Features ### Frontend - Document list with search, filter (owner/tag), sort (title, file name, created/updated) - Pagination - Bulk actions (Delete, Export CSV) - Document preview modal - Document upload - Status indicators (draft, pending, approved) - Per-document actions: Preview, View, Delete, Submit for Approval - Responsive UI, dark mode, error handling - Jest tests ### Backend - RESTful API for document CRUD, user management, tags - Authentication (Sanctum) - Role-based access - File uploads - Tagging - Audit trails (timestamps) - API docs (Swagger) - Pest tests - Search (Scout) - Excel import/export --- ## 5. Features to Enhance or Add - Bulk delete/export (backend endpoints, frontend logic) - Advanced search (fuzzy, query builder) - User management UI (admin roles/permissions) - Notifications (email/in-app) - Document versioning - Comments/annotations - Activity logs - API rate limiting/security - Internationalization (multi-language) - Accessibility improvements - Performance optimization - Mobile responsiveness - Admin analytics dashboard --- ## 6. How to Add a New Feature/File ### Frontend 1. Add a component in `src/components/` or `src/features/`. 2. Update/create a page in `src/pages/`. 3. Add API logic in `src/api/` or `src/services/`. 4. Update types in `src/models/`. 5. Register new routes in router config. 6. Style with Tailwind CSS. 7. Add tests in `src/__tests__/` or alongside the component. ### Backend 1. Add Controller/Model/Service in `app/`. 2. Register routes in `routes/api.php` or `web.php`. 3. Add migrations in `database/migrations/`. 4. Update policies in `app/Policies/`. 5. Add tests in `tests/Feature/` or `tests/Unit/`. 6. Document API changes in Swagger config. --- ## 7. Summary Table | Area | Status/Features Implemented | Planned/Enhancements | |-----------------|-------------------------------------------|-------------------------------------| | Document CRUD | List, filter, sort, preview, upload, delete, submit for approval | Bulk actions, versioning, comments | | User Management | Basic owner filter, role separation | Admin UI, advanced permissions | | API | RESTful, auth, tags, search, docs | Rate limiting, security, analytics | | UI/UX | Responsive, dark mode, error handling | Accessibility, mobile, i18n | | Testing | Jest (frontend), Pest (backend) | More coverage, e2e tests | --- ## 8. Proposal Usage - Modern React + Laravel stack - Document management, user roles, tagging, search, bulk actions - Modular, scalable, extensible - Linting, testing, API docs, modern UI/UX - Clear roadmap for enhancements