mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2025-12-30 03:03:06 -05:00
47 lines
1.0 KiB
Markdown
47 lines
1.0 KiB
Markdown
# Working on the new api
|
|
|
|
## Connecting to local database
|
|
|
|
The api uses the ORM Prisma and it needs the MongoDB instance to be a replica set.
|
|
|
|
### Atlas
|
|
|
|
If you use MongoDB Atlas, the set is managed for you.
|
|
|
|
### Local
|
|
|
|
The simplest way to run a replica set locally is to use the docker-compose file
|
|
in /tools.
|
|
|
|
```bash
|
|
cd tools
|
|
docker compose up -d
|
|
```
|
|
|
|
The new db will be empty, so you can run the seed script to populate it.
|
|
|
|
```bash
|
|
cd ../.. # back to the root of the repo
|
|
pnpm seed
|
|
```
|
|
|
|
### Troubleshooting
|
|
|
|
If you have any issues connecting to the database (e.g. MongoServerError: not primary), try removing the volume and recreating the containers.
|
|
|
|
```bash
|
|
cd tools
|
|
docker compose down -v
|
|
docker compose up -d
|
|
```
|
|
|
|
## Login in development/testing
|
|
|
|
During development and testing, the api exposes the endpoint GET auth/dev-callback. Calling this will log you in as the user with the email `foo@bar.com` by setting the session cookie for that user.
|
|
|
|
## Generating Exams
|
|
|
|
```bash
|
|
pnpm run generate-exams <ENV_EXAM_ID> <NUMBER_OF_EXAMS_TO_GENERATE>
|
|
```
|