This project was made for a challenge Thullo by devChallenges.io.
- Node >= v16.6.2
- docker
- docker-compose
- PNPM >= v6.22.2
- MongoDB >= v5.0.4
-
First you have to clone the repository
git clone https://github.com/Fredkiss3/thullo.git
-
Then, Install the dependencies :
pnpm install
-
Launch the docker-compose server to start a mongodb server :
docker-compose up -d
-
Rename the
.env.example
located inpackages/express/src/config
to.env.local
And change the file to your needs, by default you have :# server PORT = 3031 # mongo database MONGO_URI='mongodb://root:password@localhost:27017/thullo?authSource=admin'
-
And launch the project :
pnpm run dev --parallel
The express API will be available at http://localhost:3031 and the frontend client at http://localhost:3000.
-
Open the source code and start rocking ! 😎
A quick look at the top-level files and directories you will see in this project.
.
├── .github/
│ └── workflows
│ ├── express.yml
│ ├── domain.yml
│ └── front.yml
├── packages/
│ ├── domain
│ ├── express
│ ├── adapters
│ └── front
├── .prettierrc
├── jest.config.json
├── lerna.json
├── pnpm-lock.yaml
└── tsconfig.json
-
.github/
: this folder contains the GitHub Actions workflow configuration for Continuous Integration/Continuous Deployment. Given that this project is a monorepo, there is muliples workflows for the different packages, with each one targeting a specific environment : -
packages/
: this folder contains the monorepo packages, each package is a sub-folder :-
domain
: this package contains the domain logic used by the express App -
express
: this package contains the express API. -
adapters
: this package contains the implementations of all the interfaces in the domain that the express API will use. -
front
: this package contains the frontend app written in React.
-
-
.prettierrc
: this file contains the configuration for prettier to enable autoformatting. -
jest.config.json
: this file contains the configuration for Jest, that are used by the all the underlying packages -
lerna.json
: this file contains the configuration for the monorepo. -
pnpm-lock.yaml
: this file contains the dependencies lock for the monorepo. -
tsconfig.json
: this file contains the configuration for typescript, that are used by the all the underlying packages