Contract Manager

Note: This application does not reflect my current skills, but rather serves as a marker of progress.

Context

To learn more about the context behind the creation of this application, feel free to contact me:

I will do my best to reply within 48 hours.

About the application

Technical Specifications

  • Architecture : MVC
  • Backend : PHP
  • Database : MySQL
  • Frontend : HTML, CSS, Bootstrap, JavaScript
  • Mailing : PHPMailer
  • Scheduled Tasks : Cron

Deployment and Production environnement

During development, my IDE was configured to automatically sync the code via FTP to a Debian Web server running Apache 2.

Although the application was not officially in production, I set up two distinct environments:

  • a development version on my local machine;
  • a so-called production version, functional and continuously available, updated occasionally after new features were validated.

Main Features

  • Structured contract hosting (data + PDF documents)
  • Automatic email reminders for renewals
  • Automated maintenance of database tables and PDF files
  • Support module connectable to GLPI or a dedicated email address
Application's main page Illustration

Security

Injection Protection

  • Protection against SQL injections
  • Protection against XSS injections

Roles and Partitioning

  • 3 Access levels
  • Data and permission partitioning

Authentification

  • Authentification via Active Directory
  • Brutefroce possibility
  • IP blocking

Logs

  • Login logs
  • Database logs
  • Periodic task logs

Forms Security

  • CSRF tokens
  • Data validation
Blocking Page Illustration

What This Project Taught Me

My Successes

  • Getting familiar with fundamental web languages: PHP, HTML, CSS, JavaScript
  • Discovering Bootstrap for frontend development
  • Understanding the principles and workings of the MVC architecture

My Mistakes

  • Ignoring good coding practices
  • Lack of project management
  • No tests implemented