The Computerized Maintenance Management System (CMMS) is a web-based software designed for efficient management of maintenance and repair operations. Utilizing modern technologies, this system enables asset management, work order handling, reporting, and monitoring of maintenance workflows.
-
Asset Management: Register, edit, and delete equipment and machinery
-
Work Order Management: Create and track work orders
-
Reporting: Generate various performance reports
-
Manager Dashboard: Display key statistics and information
-
Work Order View: View and manage assigned tasks
-
Checklists: Execute repair steps following checklists
-
Work History: Review past job records
-
Engineer Dashboard: Display personal tasks and statistics
-
Login & Registration: Secure authentication system
-
Role Management: Access control based on user roles
-
Security: JWT-based authentication
-
ASP.NET MVC 5.2.9: Main framework
-
.NET Framework 4.8: Development platform
-
Entity Framework 6.5.1: ORM for database interactions
-
AutoMapper 10.1.1: Object mapping
-
Unity 5.11.10: Dependency injection
-
Bootstrap 5.2.3: CSS framework
-
jQuery 3.7.0: JavaScript library
-
Font Awesome: Icons
-
Leaflet.js: Interactive maps
-
SQL Server: Database management system
-
Stored Procedures: For optimized performance
-
PersianDate 3.5.5: Persian calendar support
-
Newtonsoft.Json 13.0.3: JSON processing
-
Microsoft.Identity: Authentication and authorization
-
Visual Studio 2019/2022 or Visual Studio Code
-
SQL Server 2016 or newer
-
SQL Server Management Studio (SSMS)
-
.NET Framework 4.8
-
IIS Express or IIS
-
SQL Server Browser Service
git clone https://github.com/pouria-azad/Cmms.git
cd CMMS-
Install and start SQL Server
-
Open SQL Server Management Studio
Use the SQL file:
Run SQLScript/file.sql in SSMS or via command line:
sqlcmd -S . -i SQLScript/file.sqlEdit the Web.config file and update your connection string:
<connectionStrings>
<add name="CmmsEntities"
connectionString="metadata=res://*/Cmms.csdl|res://*/Cmms.ssdl|res://*/Cmms.msl;provider=System.Data.SqlClient;provider connection string="data source=YOUR_SERVER_NAME;initial catalog=Cmms;integrated security=True;encrypt=False;MultipleActiveResultSets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
</connectionStrings>Important notes:
-
Replace
YOUR_SERVER_NAMEwith your SQL Server instance name -
For SQL Server Express:
.\SQLEXPRESS -
For LocalDB:
(LocalDB)\MSSQLLocalDB
-
Open the solution in Visual Studio
-
Restore NuGet packages
-
Build the project
-
Press F5 to run
If a PowerShell script is provided:
.\setup_database.ps1CMMS/
βββ Areas/ # Different system areas
β βββ Engineer/ # Engineer panel
β β βββ Controllers/ # Engineer controllers
β β βββ Views/ # Engineer views
β β βββ Data/ # Engineer data
β βββ Manager/ # Manager panel
β βββ Controllers/ # Manager controllers
β βββ Views/ # Manager views
β βββ Service/ # Manager services
β βββ ViewModels/ # View models
βββ Content/ # Static files
β βββ css/ # CSS files
β βββ js/ # JavaScript files
β βββ Img/ # Images
βββ Controllers/ # Main controllers
βββ Database/ # Database scripts
βββ SQLScript/
β βββ file.sql # Database creation script
βββ Models/ # Data models
βββ Views/ # Main views
βββ Web.config # Application settings
Edit authentication-related files under the Areas folder.
User roles are defined in RoleAuthorizeAttribute.cs.
Mapping profiles are in Areas/Manager/ViewModels/MappingProfile.cs.
-
Overall system performance reports
-
Work order reports
-
Asset reports
-
Time-based reports
-
Upload files related to work orders
-
Manage asset images
-
Secure file storage
-
Display asset locations
-
Interactive maps using Leaflet.js
-
Check SQL Server status
-
Verify Connection String
-
Check user permissions
-
Enable SQL Server Browser
-
Verify port 1433 is open
-
Check username and password
-
Verify database access for the user
System logs are saved in the App_Data folder.
For support contact:
-
Email: pooria.azad53@gmail.com
-
Documentation: See
README_Database_Setup.mdfor database setup guide
This project is licensed under [License Type].
To contribute:
-
Fork the repository
-
Create a new branch
-
Make your changes
-
Submit a Pull Request
