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
cleanscript in rootpackage.json. Thanks to Damien Buchet for the idea.
- Changed
--cachedoption of thegit diffcommand in the pre-commit hook for the more explicit alias--staged.
-
Fixed allow list in pre-commit hook : root
package.jsonfile can not be changed anymore (but rootpackage-lock.jsonmay 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-stagedconfiguration to focus on code files only. Thanks to Dimitri Lavaury-Collot. -
Removed
yarnandpnpmpackage 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
supertestin backend, and added smoke testing samples in abackend/tests/items/routes.spec.jsfile. -
Added unit testing samples in a
backend/tests/items/manager.spec.jsfile. -
Added a section in
backend/src/app.jsfor error handling. Reminder: an error-handling middleware must have 4 parameters -
Added support for network-wide testing (ie: mobile testing) using
--hostoption of Vite. Thanks to Loïc Brassart.
-
Isolated
databaseclient frombackend/src/models/AbstractManager.jsinto 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
pnpmandyarn, and fixed pre-commit hook to allow changes in rootpackage.json. Thanks to Ayoub Idrissi Ouedrhiri. -
Updated code tours in
.toursfolder.
- Installed
@faker-js/fakerin backend.
-
Installed
react-router-domin 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
huskyin 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.jsshould declare every CRUD methods: they do not inherit read and delete methods fromAbstractManageranymore. Methodsfind,findAllandinsertare renamed asread,readAllandcreate. Moved to async/await syntax. -
Breaking change: manager registration should be done in
backend/src/tables.jsinstead 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.sqllogic into table creation in a filebackend/database/schema.sqland table filling in a filebackend/seed.js. Updatedbackend/migrate.jsaccordingly. -
Breaking change: renamed
migratescript asdb:migrate, and added adb:seedscript. -
Breaking change: removed fallback values for
.envvariables. 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
viteand@vitejs/plugin-reactas 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.jsonfiles.
- Deployment workflows using CapRover. Thanks to Anthony Gorski.
- Compatibility with
npmalternatives (yarn,pnpm...). Setconfig.cliin rootpackage.jsonwith the wanted value.
-
Allowed usage
console.infoin 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 apostinstallscript. -
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
connectionproperty of managers asdatabaseto 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}`);
}