All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Nothing right now. Open an issue if you find something.
- Added
clean
script in rootpackage.json
. Thanks to Damien Buchet for the idea.
- Changed
--cached
option of thegit diff
command in the pre-commit hook for the more explicit alias--staged
.
-
Fixed allow list in pre-commit hook : root
package.json
file can not be changed anymore (but rootpackage-lock.json
may be regenerated). -
Fixed GitHub actions for deployment when repository is hosted on a GitHub organization account. Thanks to Jean-François Morin and Julien Richard.
-
Fixed job triggers for deployment. Thanks to Jean-François Morin and Julien Richard.
-
Refined
lint-staged
configuration to focus on code files only. Thanks to Dimitri Lavaury-Collot. -
Removed
yarn
andpnpm
package managers in favor of npm. Thanks to Dimitri Lavaury-Collot. -
Used cache to optimize job execution time. Thanks to Dimitri Lavaury-Collot.
- Fixed GitHub actions for lint.
- Fixed issue #11: installed and configured
lint-staged
.
-
Installed
supertest
in backend, and added smoke testing samples in abackend/tests/items/routes.spec.js
file. -
Added unit testing samples in a
backend/tests/items/manager.spec.js
file. -
Added a section in
backend/src/app.js
for error handling. Reminder: an error-handling middleware must have 4 parameters -
Added support for network-wide testing (ie: mobile testing) using
--host
option of Vite. Thanks to Loïc Brassart.
-
Isolated
database
client frombackend/src/models/AbstractManager.js
into a separate filebackend/database/client.js
, so it is accessible to test suite in a consistent way. -
Breaking change: Refactored deployment using Traefik. Thanks to Jean-François Morin and Anthony Gorski.
-
Fixed issue #84: provided lock files for
pnpm
andyarn
, and fixed pre-commit hook to allow changes in rootpackage.json
. Thanks to Ayoub Idrissi Ouedrhiri. -
Updated code tours in
.tours
folder.
- Installed
@faker-js/faker
in backend.
-
Installed
react-router-dom
in front, and did a non breaking change inmain.jsx
: pages can be added to the router, or everything can be developped in App setting aside the router features. -
Uninstalled
husky
in front (useless dependency). -
Moved to async/await syntax in
backend/src/controllers/itemControllers.js
, and passed error handling to next middleware. -
Breaking change: Removed item update and delete routes, and the associated CRUD methods in
ItemManager
. -
Breaking change: refactored models. Managers like
backend/src/models/ItemManager.js
should declare every CRUD methods: they do not inherit read and delete methods fromAbstractManager
anymore. Methodsfind
,findAll
andinsert
are renamed asread
,readAll
andcreate
. Moved to async/await syntax. -
Breaking change: manager registration should be done in
backend/src/tables.js
instead ofbackend/src/models/index.js
.
For example, a FooManager.js
model was previously registered in backend/src/models/index.js
like this:
const models = {};
const FooManager = require("./FooManager");
models.foo = new FooManager();
models.foo.setDatabase(pool);
Now it should be registered in backend/src/tables.js
like this:
const FooManager = require("./models/FooManager");
const managers = [
// ...
// Add other managers here
FooManager,
];
Usage in controllers changes from this:
const models = require("../models");
// ...
models.foo.callSomeCrudMethod();
To this:
const tables = require("../tables");
// ...
tables.foo.callSomeCrudMethod();
-
Breaking change: split ̀
database.sql
logic into table creation in a filebackend/database/schema.sql
and table filling in a filebackend/seed.js
. Updatedbackend/migrate.js
accordingly. -
Breaking change: renamed
migrate
script asdb:migrate
, and added adb:seed
script. -
Breaking change: removed fallback values for
.env
variables. They have to be defined. -
Breaking change: removed magic configuration, and added pedagogical comments to help rewrite it.
- Fixed deploy workflow. Thanks to Pierre Paillard.
-
Removed useless eslint disable comment in
backend/index.js
. Thanks to Benoît Vandanjon. -
Fixed pre-commit hook to reject modifications in the root directory.
- Git commands for Windows users, to fix issues with different newline formats (see README.md).
-
Changed default ports configuration to 3000 for frontend and 6000 for backend. Thanks to Loris Chastanet.
-
Breaking change: removed cutomized alias for imports in frontend.
- Moved
vite
and
@vitejs/plugin-react
as regular dependencies in frontend, and fixed imports in config. Thanks to Pierre Paillard.
Open an issue if you have any request/feedback :)
- Removed useless code in
package.json
files.
- Deployment workflows using CapRover. Thanks to Anthony Gorski.
- Compatibility with
npm
alternatives (yarn
,pnpm
...). Setconfig.cli
in rootpackage.json
with the wanted value.
-
Allowed usage
console.info
in ESLint configuration (front and back). -
Bumped dependencies versions. Thanks to Valentin Dupin.
-
Cleaned backend/src/app.js and removed public index.html file to avoid conflicts when serving react build.
-
Breaking change: removed setup script:
npm install
(or any other alternative) triggers apostinstall
script. -
Breaking change: removed models "autoloading": now managers should be instantiated manually in
backend/src/models/index.js
.
For example, given you created a FooManager.js
file to be associated with a foo
table,
you should add to index, after const models = {}
statement:
const FooManager = require("./FooManager");
models.foo = new FooManager();
models.foo.setDatabase(pool);
- Breaking change: renamed
connection
property of managers asdatabase
to be consistent with quests.
Managers methods should be fixed from:
findAll() {
return this.connection.query(`select * from ${this.table}`);
}
To:
findAll() {
return this.database.query(`select * from ${this.table}`);
}