You are browsing as a guest. Sign up (or log in) to start making projects!

Equiplane

  • 9 Devlogs
  • 14 Total hours

EquipLane is a PHP web application for industrial maintenance management. The system allows clients to report equipment failures, admins to assign engineers, and engineers to update ticket statuses, submit repair reports, and track service costs.

Ship #1 Changes requested

I made EquipLane, an industrial maintenance ticketing system where clients can report equipment problems, engineers can manage assigned repair tasks, and admins can control the whole maintenance workflow.

The hardest part was coming up with the idea and building the project from scratch without much previous experience. I had to figure out the structure, database, roles, authentication, and the whole workflow step by step.

I’m most proud that I was able to finish a working project and also make the GitHub repository look organized and well documented. This is my first major portfolio project, so I’m proud that it turned into something complete.

To test it, just open the project link and log in using the demo credentials from the README.

  • 9 devlogs
  • 14h
Try project → See source code →
Open comments for this post

1h 24m 21s logged

What I did:
Wrapped up the EquipLane project and prepared it for my portfolio. I containerized the entire application using Docker and Docker Compose, linking a PHP 8.2 server with a MariaDB database so the whole environment can be spun up with a single command. I also set up a CI pipeline using GitHub Actions to automatically lint and check PHP syntax on every push. Finally, I generated a complete Entity-Relationship Diagram (ERD) to visualize the database architecture and wrote a comprehensive README explaining the core mechanics, security features, and the PRG pattern I implemented.

The struggles:
I definitely reached the limit of what makes sense to build with pure procedural PHP. Refactoring and maintaining this architecture showed me exactly why OOP and modern frameworks exist. It was a great learning experience for understanding the fundamentals, but I am definitely ready to move on to Nette for my next hackathon projects.

What I did:
Wrapped up the EquipLane project and prepared it for my portfolio. I containerized the entire application using Docker and Docker Compose, linking a PHP 8.2 server with a MariaDB database so the whole environment can be spun up with a single command. I also set up a CI pipeline using GitHub Actions to automatically lint and check PHP syntax on every push. Finally, I generated a complete Entity-Relationship Diagram (ERD) to visualize the database architecture and wrote a comprehensive README explaining the core mechanics, security features, and the PRG pattern I implemented.

The struggles:
I definitely reached the limit of what makes sense to build with pure procedural PHP. Refactoring and maintaining this architecture showed me exactly why OOP and modern frameworks exist. It was a great learning experience for understanding the fundamentals, but I am definitely ready to move on to Nette for my next hackathon projects.

Replying to @qqxzew

0
15
Open comments for this post

3h 37m 39s logged

What I did:
Massive architectural and security overhaul today. I completely rewrote the form submission logic to follow the Post-Redirect-Get (PRG) pattern, integrating session-based Flash messages and strict CSRF token validation across all endpoints. I also implemented “Sticky Forms” so users never lose their detailed text inputs if a validation error occurs. For the administration side, I built full CRUD interfaces to manage personnel roles, corporate clients, and the equipment registry without needing direct database access. Finally, I wrote SQL-level pagination for the main tickets table to keep the application fast and scalable as data grows.

The struggles:
I finally switched from VS Code to PhpStorm today and I am just in shock at how insanely cool and powerful it is. It instantly highlighted database schema mismatches I missed and forced me to write much cleaner code, though getting used to its strict warnings definitely took some time.

What I did:
Massive architectural and security overhaul today. I completely rewrote the form submission logic to follow the Post-Redirect-Get (PRG) pattern, integrating session-based Flash messages and strict CSRF token validation across all endpoints. I also implemented “Sticky Forms” so users never lose their detailed text inputs if a validation error occurs. For the administration side, I built full CRUD interfaces to manage personnel roles, corporate clients, and the equipment registry without needing direct database access. Finally, I wrote SQL-level pagination for the main tickets table to keep the application fast and scalable as data grows.

The struggles:
I finally switched from VS Code to PhpStorm today and I am just in shock at how insanely cool and powerful it is. It instantly highlighted database schema mismatches I missed and forced me to write much cleaner code, though getting used to its strict warnings definitely took some time.

Replying to @qqxzew

0
5
Open comments for this post

2h 20m 10s logged

What I did:
Expanded the engineer’s resource reporting logic. When resolving a ticket, engineers are now required to input the exact hours spent and the cost of replacement parts. Built a financial calculation module on the backend that automatically aggregates these costs, applies the Czech 21% VAT (DPH), and displays a detailed invoice summary to admins and clients.

Also implemented a critical backup request feature: engineers can now submit a “Request Backup” flag along with a specific text reason if they encounter blocking issues on-site. Admins immediately see an approval panel to either accept the request (and assign additional help) or reject it.

The struggles:
I had no idea for frontend

What I did:
Expanded the engineer’s resource reporting logic. When resolving a ticket, engineers are now required to input the exact hours spent and the cost of replacement parts. Built a financial calculation module on the backend that automatically aggregates these costs, applies the Czech 21% VAT (DPH), and displays a detailed invoice summary to admins and clients.

Also implemented a critical backup request feature: engineers can now submit a “Request Backup” flag along with a specific text reason if they encounter blocking issues on-site. Admins immediately see an approval panel to either accept the request (and assign additional help) or reject it.

The struggles:
I had no idea for frontend

Replying to @qqxzew

0
12
Open comments for this post

1h 47m 59s logged

Built the ticket creation page with role protection. Clients can now select their equipment, set priorities, and safely submit maintenance requests to the database via PDO prepared statements.

The struggles:
Broken the SQL query and html :>

Built the ticket creation page with role protection. Clients can now select their equipment, set priorities, and safely submit maintenance requests to the database via PDO prepared statements.

The struggles:
Broken the SQL query and html :>

Replying to @qqxzew

0
4
Open comments for this post

2h 13m 55s logged

Milestone: From Static UI to Secure Multi-User App

What I did:
Since the last update on the UI dashboard, I have completely transformed the project from a static frontend into a secure, functional multi-user system using native PHP and MariaDB.

  1. Authentication & Session Management: Built a backend login system from scratch. Implemented secure password hashing using bcrypt. Set up native PHP sessions to track users across pages.
  2. Security Guards & Logout: Created a centralized guard script to prevent unauthorized URI access. If a user isn’t logged in, they are killed and redirected to the login page. Added a full session-destroying logout mechanism.
  3. Role-Based Access Control (RBAC): Differentiated the system for Admins, Engineers, and Clients. The UI now dynamically hides navigation links based on roles, and the backend explicitly throws a 403 Forbidden error if a non-admin tries to access the core control panel.
  4. Profile & Password Updates: Built a personal profile page that fetches current user details and handles password modification with server-side validation.

The struggles:
Ran into multiple syntax walls, including incorrect sql, forgotten POST block brackets, and a lot of typo mismatches. Also had to deal with MariaDB unique constraint violations during database seed testing, which I resolved by writing a structured TRUNCATE routine to clear tables before fresh seeding.

Now the app actually feels like a secure industrial tool rather than just a Tailwind template.

Milestone: From Static UI to Secure Multi-User App

What I did:
Since the last update on the UI dashboard, I have completely transformed the project from a static frontend into a secure, functional multi-user system using native PHP and MariaDB.

  1. Authentication & Session Management: Built a backend login system from scratch. Implemented secure password hashing using bcrypt. Set up native PHP sessions to track users across pages.
  2. Security Guards & Logout: Created a centralized guard script to prevent unauthorized URI access. If a user isn’t logged in, they are killed and redirected to the login page. Added a full session-destroying logout mechanism.
  3. Role-Based Access Control (RBAC): Differentiated the system for Admins, Engineers, and Clients. The UI now dynamically hides navigation links based on roles, and the backend explicitly throws a 403 Forbidden error if a non-admin tries to access the core control panel.
  4. Profile & Password Updates: Built a personal profile page that fetches current user details and handles password modification with server-side validation.

The struggles:
Ran into multiple syntax walls, including incorrect sql, forgotten POST block brackets, and a lot of typo mismatches. Also had to deal with MariaDB unique constraint violations during database seed testing, which I resolved by writing a structured TRUNCATE routine to clear tables before fresh seeding.

Now the app actually feels like a secure industrial tool rather than just a Tailwind template.

Replying to @qqxzew

0
5
Open comments for this post

22m 33s logged

After getting the database connected, I built the main dashboard U, also I dont have any idea for design after hard day so I asked AI about help…

After getting the database connected, I built the main dashboard U, also I dont have any idea for design after hard day so I asked AI about help…

Replying to @qqxzew

0
7
Open comments for this post

1h 7m 22s logged

Honestly, it is my first time building a real website in PHP, and I realized I had completely forgotten most of my HTML and CSS. Today I successfully parsed the environment variables, securely connected the MariaDB database via PDO, and built a clean industrial dashboard layout using Tailwind CSS. EquipLane is finally coming to life.

Honestly, it is my first time building a real website in PHP, and I realized I had completely forgotten most of my HTML and CSS. Today I successfully parsed the environment variables, securely connected the MariaDB database via PDO, and built a clean industrial dashboard layout using Tailwind CSS. EquipLane is finally coming to life.

Replying to @qqxzew

0
33
Open comments for this post

53m 25s logged

Today I set up the initial structure for Equiplane, an industrial equipment maintenance workflow system

I prepared the first part of the database schema for the project, including the base tables for users and companies. The goal is to build a system where clients can report equipment failures, admins can assign engineers, and engineers can manage repair tickets.

Today I set up the initial structure for Equiplane, an industrial equipment maintenance workflow system

I prepared the first part of the database schema for the project, including the base tables for users and companies. The goal is to build a system where clients can report equipment failures, admins can assign engineers, and engineers can manage repair tickets.

Replying to @qqxzew

0
53

Followers

Loading…