Poker planning is essentially designed to help engineering team to define well define parameters and brain storm on estimation of the task/issue.
The project is structured as a mono-repo, which is managed via nx. All code is written in TypeScript, to guarantee type safety and easy error discovery and safe ways of refactoring, even when the project grows.
The main web framework used is React, we use Material Design where possible. For animation calculation we use Framer Motion.
These prerequisites need to be fulfilled before starting development with and for the MapCreator Reboot project:
Every sub-project contains a list of npm dependency packages (ie. defined in the package.json
of each subfolder in ./packages
).
And also the corresponding development server (ie. for the "app-mobile") runs via webpack on node.js.
Therefor it is required to install a up-to-date version of Node.js (and NPM) on the local machine to be able to run and build the project.
-
Node.js >=
18.12.0
Hint: To avoid conflicts with other projects, that might require a different node version, you might want to consider using a tool like nvm.
-
PNPM
Note: All npm / lerna commands need to be executed in the root folder of the project.
-
Check that all the general prerequisites listed above are given
-
Load/install all required node modules
npm run bootstrap
Note: All modules are install in
/node_modules
.All sub-projects (ie. all managed projects of the monorepo located in
/apps/**
) are added as symlinks in/node_modules
-
Setup the development environment
To start server
nx run server:serve
To start client app
nx run client:serve
-
Build and run an application - e.g. client
There are following options to build and run the app:
-
Run the HMR (Hot Module Reloading) version af the app and launch the app in the web browser
nx run client:serve
-
For contributions to the project, please check and consider the IMC Code Review checklist and MapCreator Coding guide lines
If a new dependency is required in one of the packages, best practice is to install it by following these steps:
-
Navigate to the package folder, e.g.
cd apps/client
. -
Run
pnpm add <dependency>
.This adds the depencency to the dedicated
package.json
file. -
Navigate back to the root
cd ..
-
Run the update command:
npm run update
, which takes care of providing the dependency in the top-level./node_modules
folder.
Possible situations, where a merge conflict with the pnpm-lock.yaml
file can occur, are..
- when pulling the latest changes, while you have added a new dependency yourself
- when merging or rebasing another branch into your current branch (e.g. merging the MASTER into a feature branch)
In case that happens, it's suggested to follow these steps:
-
Resolve the conflict by accepting the entire
pnpm-lock.yaml
file from the other branch (the one you are merging from) and omit your local version -
Run
npm run update
This does two things:
- It installs all new dependencies, that you do not yet have.
- It puts the yarn definitions of the packages you wanted to add again into the
pnpm-lock.yaml
file.
After that, you have conflict free version of the
pnpm-lock.yaml
file. -
Finish the merge/rebase and commit your changes as usual.
Build
To start the development server run nx serve client
. Open your browser and navigate to http://localhost:4200/. Happy coding!