Skip to content

Daniel-Sensei/Docufy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

418 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📂 Docufy - Enterprise Document Management System

Java Angular PostgreSQL Bootstrap

Docufy is a full-stack web platform designed to streamline the management of corporate documentation, employee records, and compliance training. It features an automated expiration tracking system that notifies companies of impending deadlines via email.

The platform relies on a Role-Based Access Control (RBAC) architecture, dividing functionality between two distinct actors:

  • Consultant: Manages partner companies and organizes training courses.
  • Company: Manages internal documents, employees, and course enrollments.

🛠️ Tech Stack & Architecture

This project was built with a strong focus on Software Design Patterns and MVC Architecture.

Backend

  • Java (Servlets & Spring): Core logic implementation.
  • Thymeleaf: Server-side template rendering for specific views.
  • PostgreSQL: Relational database management.
  • REST APIs: JSON-based communication for file transfers and frontend integration.

Frontend

  • Angular: Dynamic single-page application framework.
  • Bootstrap: Responsive design and UI components.
  • ChartJS: Visualization of expiring documents on the dashboard.

Design Patterns Implemented

  • MVC (Model-View-Controller): Strict separation of concerns.
  • DAO (Data Access Object): Abstracted interface for all database operations.
  • Proxy Pattern (Security): Implemented a Security Proxy to handle authentication and authorization, ensuring strict data isolation between "Company" and "Consultant" roles.

✨ Key Features

🏢 Core Functionality

  • Expiration Dashboard: Visual analytics and tables showing documents "Expiring Soon" or "Expired".
  • Global Search: Instant access to companies, documents, and employees via the header.
  • Document Management: Upload, sort, and download corporate and employee-specific files.
  • Bulk Operations: Support for importing employee lists via CSV/XLSX.
  • Notification Engine: Automated emails via JavaMail for deadline alerts and account creation.

👥 Role-Specific Features

Role Capabilities
Consultant • Create Company Accounts (Auto-email credentials)
• Manage Training Courses
• View aggregate data of partner companies
Company • Manage Employees & Documents
• Enroll employees in courses (Cap-limited)
• Receive expiration alerts

🚀 Setup & Testing

Database Configuration

Ensure your PostgreSQL instance is running and configure the connection in: src/main/resources/application.properties

Demo Credentials

The database dump includes 3 test accounts:

Role Email Password
Company A alpha@azienda.com Web2324.
Company B beta@azienda.com Web2324.
Consultant gamma@consulente.com Web2324.

👥 Authors

  • Campanella Gianluca
  • Curcio Daniel
  • Falvo Caterina
  • Gattuso Pietro

*Disclaimer: Icons provided by Freepik & BootstrapIcons.

About

Enterprise Document Management System (DMS) built with Java Spring, Angular, and PostgreSQL. Features RBAC security and automated expiration tracking.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors