Skip to content

Commit c6e1109

Browse files
committed
Enhance README with detailed core features and project architecture updates
1 parent 64a8086 commit c6e1109

1 file changed

Lines changed: 27 additions & 18 deletions

File tree

README.md

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,19 @@ The application is built using the **Repository Pattern** with **Dependency Inje
2020

2121
## Core Features
2222

23-
* **Intern Management:** Full CRUD (Create, Read, Update, Delete) operations with data validation for student records.
23+
* **Intern Management:** Full CRUD operations with data validation, including **visual indicators** for contract expiration and **time elapsed progress bars**.
24+
* **Communication Shortcuts:** Integrated actions for quick contact via **WhatsApp and E-mail**.
2425
* **Venue Management:** Manage internship locations and their supervisors.
25-
* **Meeting Scheduling:** Track meetings and attendance.
26+
* **Supervision & Meetings:**
27+
* **Supervision Calendar:** Monthly view for tracking meetings and on-site visits.
28+
* **Visit Evidence:** Secure photo storage with automatic ISO sanitization.
2629
* **Evaluation System:**
2730
* Customizable, weighted grading criteria.
2831
* Automatic calculation of averages and final status (Pass/Fail).
29-
* A user-friendly interface for grade entry.
32+
* **Productivity Tools:**
33+
* **Batch Export:** Simultaneous generation of multiple PDF reports.
34+
* **Collective Approval:** Bulk processing of mandatory documents.
35+
* **Interactive Dashboard:** KPI cards with drill-down filtering.
3036
* **Document Generation:** Automatically create essential documents like contracts and attendance sheets.
3137
* **Batch Import:** Process `.csv` files to add or update multiple records at once using an "upsert" logic.
3238
* **Data Persistence:** Uses a local SQLite database for simplicity and portability.
@@ -85,30 +91,33 @@ Follow the steps below to set up and run the application locally.
8591

8692
## Project Architecture
8793

88-
The project is organized into a modular structure to promote maintainability and scalability.
94+
The project is organized into a modular structure to promote maintainability and scalability, following the **Repository Pattern** and **Service Layer** principles.
8995

9096
```
9197
src/
9298
├── core/
93-
│ └── models/ # Domain entities (e.g., Intern, Venue, Grade)
99+
│ └── models/ # Domain entities (SQLAlchemy Models)
94100
├── data/
95-
│ └── database.py # Database connector (SQLite)
96-
├── repository/ # Data Access Layer
97-
├── services/ # Service Layer (Business Logic)
101+
│ └── database.py # Database connector and session management
102+
├── repository/ # Data Access Layer (Abstraction over SQLAlchemy)
103+
├── services/ # Business Logic (Batch Ops, Reports, Communications)
98104
├── ui/ # Presentation Layer (PySide6 / Qt)
99-
│ ├── dialogs/ # Form dialogs (Add/Edit)
100-
│ └── main_window.py # Main application window
101-
├── utils/ # Utility modules (validators, etc.)
102-
└── main.py # Application entry point and Dependency Injection setup
105+
│ ├── components/ # Reusable UI widgets (Metric cards, Stat cards)
106+
│ ├── dialogs/ # Form dialogs and configuration windows
107+
│ ├── views/ # Specialized views (Dashboard, Calendar, Venues)
108+
│ └── main_window.py # Application shell and navigation logic
109+
├── utils/ # Helpers (Validators, Text processors, Seeders)
110+
└── main.py # Entry point and Dependency Injection container
103111
```
104112
105-
The architecture is composed of distinct layers:
113+
### Layer Responsibilities
106114
107-
- **`core`**: Contains the fundamental data structures (models) of the application.
108-
- **`data`**: Manages the database connection.
109-
- **`repository`**: Mediates between the domain and data mapping layers using a collection-like interface for accessing domain objects.
110-
- **`services`**: Contains the business logic of the application.
111-
- **`ui`**: The graphical user interface, built with PySide6.
115+
- **`core`**: Defines the fundamental data structures and business rules.
116+
- **`data`**: Handles low-level database operations and migrations (Alembic).
117+
- **`repository`**: Provides a clean interface for data retrieval and persistence, decoupling the domain from the DB engine.
118+
- **`services`**: Orchestrates complex operations, such as batch report generation and automated communication protocols.
119+
- **`ui`**: Manages the user interface, utilizing custom delegates for advanced table rendering (progress bars, status icons).
120+
- **`utils`**: Contains cross-cutting concerns like data validation and URL formatting for external integrations.
112121
113122
---
114123

0 commit comments

Comments
 (0)