This project is part of a Green IT audit exercise.
You will work on an old attendance (emargement) application that was previously used in a real educational context.
👉 Your mission is NOT to develop new features.
The goal is to:
- audit an existing application
- understand how it works
- analyze its technical and organizational choices
- identify potential environmental and technical issues
- propose Green IT–oriented improvements
Through this project, you are expected to:
- understand an existing application (backend + database)
- analyze:
- the overall architecture
- the database structure
- the server and deployment configuration
- identify:
- inefficient or outdated practices
- potential overconsumption of resources
- optimization opportunities
- produce a structured and well-argued audit
The setup is not fully automated, and this is part of the exercise.
Before starting, make sure you have:
- Docker
- MySQL client (
mysql) - Node.js and npm (or equivalent)
- Git
- Linux / macOS environment (or WSL on Windows)
Clone only the branch used for the audit:
git clone -b main --single-branch https://github.com/Zone01Rouen/greenit-emargement-audit.gitThe application relies on a MySQL database.
docker run \
-e MYSQL_ROOT_PASSWORD=password \
-e MYSQL_DATABASE=emargement \
-p 3306:3306 \
-d mysql- MYSQL_ROOT_PASSWORD: root password for MySQL
- MYSQL_DATABASE: database automatically created
- 3306: MySQL port exposed on the host machine
Check that the container is running:
docker psA SQL migration file is provided in the project:
sign_db_june_2025.sql
👉 This file contains only the database structure, without any data.
mysql -h 127.0.0.1 -u root -p -D emargement < /path/to/sign_db_june_2025.sql- Password when prompted:
password
To be able to log into the application, a test user must be created manually.
mysql -h 127.0.0.1 -u root -pUSE emargement;INSERT INTO `students` (pseudo, password)
VALUES (
'test',
'$2a$12$lbO9/tiSuzSX..YVKBspiOZIlFXaWThefIXfT/8KvID02xm8MPJya'
);- Username:
test - Password:
test
💡 The password is stored as a bcrypt hash.
Create a .env file at the root of the project.
DB_HOST=127.0.0.1:3306
DB_USER=root
DB_PASS=password
DB_NAME=emargement
JWT_SECRET=changemeJWT_SECRETis used to sign authentication tokens- It must be replaced with a secure random value
You can generate one using:
openssl rand -hex 32Install dependencies:
npm installStart the application:
npm start(or the equivalent command depending on the project setup)
At this stage:
- the MySQL database is running
- the schema is imported
- the test user exists
- the application starts correctly
- login with the test user is possible
You are required to produce a Green IT audit, focusing for example on:
- overall architecture
- database usage
- Docker and infrastructure choices
- server and configuration management
- technical and organizational decisions
- environmental and sustainability impacts
👉 The objective is not to immediately refactor the code, but to:
- understand
- analyze
- justify
- propose relevant improvement paths
This project is based on a real legacy application, intentionally restored in its original state to serve as an audit support.
Some technical choices may appear questionable. 👉 This is intentional and part of the learning objectives.