A comprehensive Java desktop application for employee shift management and HR administration, built with Swing GUI and file-based data storage.
- Employee Management: Complete CRUD operations for employee records
- Role-Based Access Control: Multi-level permission system (Employee, Supervisor, AdminRRHH, Jefe)
- Shift Management: Track and manage employee work schedules
- Request System: Handle employee requests (vacations, personal leave, medical appointments, etc.)
- Audit Trail: Comprehensive logging system with BitacoraManager
- Email Notifications: Automated email system for important events
- Empleado (Employee): Basic access, submit requests
- Supervisor: Manage team schedules and approve requests
- AdminRRHH (HR Admin): Full user management, role assignment, employee lifecycle
- Jefe (Manager): High-level oversight and management
- Enhanced Role Management Interface: Professional table view with sorting, filtering, and color-coded roles
- Email Integration: SMTP-based email system with Gmail support
- Data Persistence: File-based storage with backup and recovery
- Form Validation: Comprehensive input validation and error handling
- Responsive GUI: Modern Swing interface with professional styling
- Java: JDK 8 or higher
- Build Tool: Apache Ant
- Email: Gmail account (for email notifications) or custom SMTP server
javax.mail-1.6.2.jar(included inlib/directory)
git clone https://github.com/eedvi/Shift-Control-System.git
cd Shift-Control-SystemEdit email-config.properties:
# Enable email notifications
email.enabled=true
# Gmail Configuration
email.username=your-email@gmail.com
email.password=your-app-password # Use Gmail App Password
email.from=your-email@gmail.comGmail Setup Instructions:
- Enable 2-Factor Authentication on your Google account
- Generate an App Password: Google App Passwords
- Use the App Password (not your regular password) in
email.password
ant clean
ant compileant runOr manually:
java -cp "build/classes:lib/*" archivo.LoginShift-Control-System/
├── src/archivo/ # Source code
│ ├── Login.java # Main entry point & authentication
│ ├── Menu.java # Main application menu
│ ├── Empleado.java # Employee data model
│ ├── MantenimientoUsuario.java # Employee maintenance
│ ├── RegistrodeEmpleados.java # Employee registration
│ ├── EmpleadosRegistrados.java # Employee listing
│ ├── GestionRoles.java # Role management (Enhanced)
│ ├── Solicitudes.java # Request management
│ ├── Solicitud.java # Request data model
│ ├── DatabaseManager.java # Data persistence
│ ├── BitacoraManager.java # Audit logging
│ ├── EmailService.java # Email notifications
│ └── Archivo.java # File operations
├── lib/
│ └── javax.mail-1.6.2.jar # Email dependency
├── build/ # Compiled classes
├── data files/
│ ├── Empleadosguardados.txt # Employee data
│ ├── solicitudes.txt # Requests data
│ ├── bitacora.txt # Audit log
│ └── AgendaContactos.txt # Contact information
├── email-config.properties # Email configuration
├── build.xml # Ant build file
└── README.md # This file
- Default Admin: Create initial admin account through the system
- Role Assignment: AdminRRHH can assign roles to other users
- Registration: Use "Registro de Empleados" to add new employees
- View Records: Access complete employee listing with enhanced table view
- Role Management: Use "Gestión de Roles" for role assignments (Enhanced UI)
- Deactivation: Manage employee lifecycle including deactivation
- Submit Requests: Employees can submit various types of requests
- Approval Workflow: Supervisors and managers can approve/reject requests
- Status Tracking: Real-time status updates for all requests
- All system operations are logged in
bitacora.txt - Email notifications for important events (when enabled)
- Comprehensive user activity tracking
- Professional Table View: Replaced basic text area with sortable JTable
- Color-Coded Roles: Visual distinction between different user roles
- Real-time Statistics: Live counts of users by role and status
- Improved User Experience: Better navigation and data presentation
- SMTP Configuration: Support for Gmail and custom SMTP servers
- Automated Notifications: Role changes, account status updates
- Configurable Settings: Enable/disable email features
Located in email-config.properties:
- Configure SMTP server settings
- Set up authentication credentials
- Enable/disable email functionality
Located in build.xml:
- Customize build targets
- Modify classpath settings
- Configure distribution options
- Email not working: Verify
email-config.propertiesand Gmail App Password - Build failures: Ensure Java 8+ and Ant are properly installed
- Data persistence: Check file permissions for data files