Repository navigation
Developer Guide
The startup PlanetPulse you are working at, as a Software Developer apprentice, is specialising in ecology and environmental monitoring, the company wants to develop a web application to track various environmental indicators by country, such as CO₂ emissions.
You and your team are tasked with designing a functional prototype of this web application; implement, test and deploy it for a presentation of the product to investors.
├── README.md
├── .gitignore
├── backend/
│ ├── pom.xml
│ ├── mvnw, mvnw.cmd, .mvn/
│ └── src/
│ ├── main/
│ │ ├── java/co/simplon/planetpulse/
│ │ │ ├── PlanetPulseApplication.java # Entry point
│ │ └── resources/
│ │ └── application.properties
│ └── test/java/co/planetpulse/ # Same arborescence
├── frontend/
│ ├── index.html
│ ├── indicators.html # 1 HTML page (MPA)
│ ├── css/
│ │ └── app.css
│ └── js/
│ ├── pages/
│ │ └── indicators-page.js # 1 css file by page
│ ├── components/ # Web Component
│ │ ├── app-navbar.js
│ │ └── indicators-table.js
│ └── utils/
│ └── api.js
├── database/
└── docs/
├── mcd/
└── excalidraw/ # drafts
In docs and in the code : javadoc
Java 25
The Web UI must be implemented in native JavaScript with an hybrid MPA/CSR approach, using Web Components and modules Web UI mandatory libraries: Bootstrap, Bootstrap Icons ans Google Fonts (latest versions) The UI is in English Backend must be implemented in Java latest LTS with Spring boot + Maven latest stable versions and any required starter to meet the needs Database is PostgreSQL 18, and must be set up using scripts
- Clone the repository
- Install dependencies
- Environment variables
- Database setup
- Run the application
- Modeling
- Branching strategy
- Creating a feature
- Commit conventions
- Pull requests
- Code review
After you took an PO issue, create an new issue labelled dev, with same name suffixe by tasks.
Analyze the selected po issue, and talk with PO to clarify Business rules.
Once, you are confident in the business rules, create the data dictionnary.
Next you can create the Merise MCD.
You can work on zoning
Next you can create the wireframes.
Gi flow
Commit messages must follow this format:
[category] Description #<issue_number>
| Category | Description |
|---|---|
frontend |
Frontend-related changes |
backend |
Backend-related changes |
database |
Database schema, queries, or migrations |
scripts |
Scripts and automation |
docs |
Documentation updates |
test |
Tests and test-related changes |
[docs] Add README.md #1
[backend] Add endpoint /users #12
[frontend] Add login page #8
[database] Add users table #5
[test] Add unit tests for authentication #15
[scripts] Add database setup script #7
#<issue_number>) whenever the commit is related to an issue.
Follow this workflow when developing a new feature:
-
Create a feature branch from
develop. - Develop the feature on your feature branch. Commit your changes following the commit convention.
-
Merge the feature branch into
developonce the feature is complete and validated. -
Open a Pull Request from
developtointegrationto integrate the changes.
- Naming conventions
- Code style
- Architecture principles
- Error handling
- Documentation
No Magic numbers ! Constantes : UPPER_SNAKE_CASE
1 file each class, with the same name
Classes : PascalCase function/methods/variabes : camelCase
files and directory in kebab-case function/methods/variabes : camelCase Classes : PascalCase
API : RESTful principles