πŸ–₯️ PHP-Based Client Management System

πŸ–₯️ PHP-Based Client Management System

Tech Stack

πŸ—ΊοΈ Project Overview

In 2021-2022, I worked with a client from Paraguay πŸ‡΅πŸ‡Ύ to develop a client management system for his graduation project. The system was designed to streamline the management of customer and employee data, with a focus on efficient and secure data retrieval.

Built with native PHP and MySQL, the project incorporated a role-based user structure with three key roles: Administrator, Manager (Head of Operations), and Cashier. One of its standout features was the integration of facial recognition for customer data retrieval, implemented using TensorFlow. This allowed for secure and quick customer identification.

πŸ“Ή Demo Videos

To provide a better understanding of the features implemented in the Client Management System (which is built in Spanish), here are three demo videos:

1. Facial Recognition Feature

In this video, you can see the facial recognition system in action, designed to quickly retrieve customer data based on their facial features. The system leverages TensorFlow for efficient identification, ensuring secure and fast lookups. The interface and instructions are in Spanish to reflect the system's localization.

2. Customer Creation Control

This video demonstrates the customer creation control, where the system checks if a customer's email, document ID, or image has already been registered in the system. This ensures that customer data is not duplicated and provides a smoother user experience. The interface for this functionality is also in Spanish.

πŸ’» Tech Stack

Frontend:

  • HTML, CSS, JavaScript (for dynamic and responsive UI)
  • Bootstrap (for a clean, responsive design)
  • jQuery (for enhanced interactivity and DOM manipulation)

Backend:

  • Native PHP (handling the core business logic and server-side operations)
  • MySQL (for database management and storage)

Development Tools:

  • Visual Studio Code (VS Code) (primary code editor)
  • WampServer (local development server)

Modeling & Design:

  • StartUML (for creating project architecture and use case diagrams)

Facial Recognition:

  • TensorFlow (used for implementing the facial recognition system, allowing fast and secure customer verification)

πŸ“˜ Mission & Objectives

The goal of the project was to build a secure, scalable, and user-friendly system to manage customer data efficiently. It needed to provide different user roles with varied access levels, and include a cutting-edge facial recognition feature to facilitate easy and quick customer identification.

Core Objectives:

  • Efficient Customer Data Management: Ensure seamless management of customer accounts, including quick lookups and modifications.
  • User Role Management: Implement role-based authentication with different levels of access.
  • Facial Recognition for Customer Identification: Leverage TensorFlow to create an effective facial recognition system for quick and accurate customer verification.
  • Audit Logging: Track all changes to customer data for security and accountability.

πŸ“ Use Case Diagram

Here’s a simplified Use Case Diagram that highlights the main actors and their interactions within the system:

Use Case Diagram
  • Administrator: Manages the entire system, creates user accounts, and oversees audits.
  • Manager: Handles customer account management, including registrations, modifications, and deletions.
  • Cashier: Has view-only access to customer data for transactional purposes.

πŸ’‘ What I Could Have Done Better

Frontend:

While the frontend was built using HTML, CSS, JavaScript, Bootstrap, and jQuery, I recognize that I could have used a more modern framework like Next.js or React to enhance the interactivity, scalability, and maintainability of the system. At the time, I was still learning these frameworks, so I worked with the technologies I had mastered to ensure a smooth development process. Had I been more experienced with React or Next.js, I would have been able to integrate better client-side features and optimize the user interface.

Backend:

For the backend, while native PHP served the purpose well, I could have utilized a more robust framework like Laravel to leverage built-in features like routing, authentication, and ORM for more efficient development. Additionally, a JavaScript-based framework (such as Node.js with Express.js) might have been a good alternative, as it would have aligned with modern development trends and allowed for a more unified JavaScript stack (both frontend and backend).

🎯 Conclusion

This project allowed me to strengthen my skills in PHP, MySQL, and system architecture while giving me exposure to facial recognition technology using TensorFlow. It was a great opportunity to apply these technologies in a real-world setting and work with an international client.

Key takeaways:

  • Native PHP Development: Enhanced my ability to build robust applications using native PHP, optimizing performance and security.
  • Database Management: Gained expertise in designing efficient MySQL databases to handle large amounts of data.
  • Facial Recognition with TensorFlow: Gained hands-on experience integrating machine learning models into a traditional PHP application.
  • International Client Collaboration: Developed better communication and collaboration skills by working with a client in Paraguay πŸ‡΅πŸ‡Ύ and adapting to their specific needs.

Feel free to reach out if you'd like to discuss similar projects or have any questions!