A2Z Engineering DBMS is an internal database management system designed for Solar, AC, and Electrical Power companies. This system provides comprehensive management capabilities for employees, projects, jobs, invoices, expenses, and payroll data. The system offers a modern web interface built with PHP, Tailwind CSS, and JavaScript.
- Employee Management: Track employee information, payment rates, attendance, and salary increments
- Project Management: Manage solar, AC, and electrical power projects with detailed tracking
- Job Tracking: Monitor job progress, completion status, and associated invoices
- Financial Management: Handle operational expenses, employee payments, and invoice data
- Reporting: Generate detailed reports on expenses, wages, and cost calculations
- Data Export: Export data to CSV format for further analysis
- Responsive Design: Works seamlessly on desktop and mobile devices
- PHP 7.4 or higher
- MySQL 5.7 or higher
- Apache or Nginx web server
- Composer (for dependency management)
- Node.js and npm (for frontend asset compilation)
git clone https://github.com/your-username/a2z-dbms.git
cd a2z-dbmscomposer install
npm install- Create a MySQL database:
CREATE DATABASE a2z_dbms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;- Import the database schema:
mysql -u your_username -p a2z_dbms < database/schema.sql- Import sample data (optional):
mysql -u your_username -p a2z_dbms < database/sample_data.sql- Copy the configuration file:
cp config/config.example.php config/config.php- Update the database credentials in
config/config.php:
<?php
return [
'database' => [
'host' => 'localhost',
'dbname' => 'a2z_dbms',
'username' => 'your_database_username',
'password' => 'your_database_password',
'charset' => 'utf8mb4'
],
'app' => [
'base_url' => 'http://localhost/a2z-dbms',
'timezone' => 'Asia/Colombo'
]
];Ensure mod_rewrite is enabled and use the provided .htaccess file in the public directory.
Add the following configuration to your Nginx server block:
server {
listen 80;
server_name your-domain.com;
root /path/to/a2z-dbms/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
}Compile the frontend assets:
npm run builda2z-dbms/
├── config/ # Application configuration files
├── database/ # Database schema and sample data
├── public/ # Publicly accessible files
│ ├── index.php # Entry point
│ └── .htaccess # Apache rewrite rules
├── src/ # Application source code
│ ├── Controllers/ # Controller classes
│ ├── Models/ # Model classes
│ ├── Views/ # View templates
│ │ ├── admin/ # Admin panel views
│ │ ├── auth/ # Authentication views
│ │ ├── errors/ # Error pages
│ │ ├── home/ # Homepage views
│ │ └── reports/ # Report views
│ ├── assets/ # Static assets
│ │ ├── css/ # Stylesheets
│ │ ├── js/ # JavaScript files
│ │ └── images/ # Image files
│ └── Core/ # Core framework files
├── vendor/ # Composer dependencies
├── .env.example # Environment variables example
├── composer.json # PHP dependencies
└── package.json # Frontend dependencies
- Navigate to the login page:
http://your-domain.com/login - Enter your database credentials to access the system
- Upon successful authentication, you'll be redirected to the admin dashboard
The dashboard provides an overview of:
- Total employees
- Active jobs
- Total projects
- Financial summaries
- System information
Access different data tables through the sidebar navigation:
- Employees: Manage employee information and payment rates
- Attendance: Track employee attendance records
- Projects: Manage project details
- Jobs: Track job progress and completion
- Invoices: Handle invoice data and payments
- Expenses: Manage operational expenses
- Payments: Track employee payments
- Bank Details: Store employee bank information
Generate various reports from the Reports section:
- Expense Reports: Analyze operational expenses
- Wage Reports: Review employee payments
- Cost Calculations: Calculate project profitability
- Follow PSR-12 coding standards for PHP
- Use Tailwind CSS for styling
- Maintain consistent naming conventions
- Write clear, commented code
- Create a new branch for your feature:
git checkout -b feature/new-feature-name-
Implement your feature following the existing code patterns
-
Test thoroughly and commit your changes:
git add .
git commit -m "Add new feature: description"- Push to the repository and create a pull request:
git push origin feature/new-feature-name- All database queries use prepared statements to prevent SQL injection
- User inputs are sanitized and validated
- Passwords are hashed using bcrypt
- Session management follows security best practices
- CSRF protection is implemented for forms
-
Database Connection Error
- Verify database credentials in
config/config.php - Ensure MySQL service is running
- Check database user permissions
- Verify database credentials in
-
404 Errors
- Verify web server rewrite rules are configured correctly
- Check that the
publicdirectory is set as the document root
-
Permission Issues
- Ensure the web server has read/write permissions for:
logs/directorycache/directoryuploads/directory (if applicable)
- Ensure the web server has read/write permissions for:
Application logs are stored in the logs/ directory. Check these files for error messages and debugging information.
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a pull request
This project is proprietary software developed for A2Z Engineering. All rights reserved.
For support, contact the development team at:
- Email: support@a2zengineering.com
- Phone: +94 XXX XXX XXX
- Enhanced UI/UX with Tailwind CSS
- Improved data management capabilities
- Added comprehensive reporting features
- Implemented responsive design
- Enhanced security measures
- Major refactor of the codebase
- Migration to modern PHP practices
- Improved database structure
- Added new data tables
- Initial release
- Basic CRUD operations
- Simple reporting capabilities
- Authentication system