As part of the 5th edition of the Devathon, Puppilots.com is being developed as a web platform designed to simplify the administration of dog walking. Our focus is on providing customers with the opportunity to offer walks for their canine companions, while interested dog walkers can apply to perform these walks. To ensure a seamless experience, we have integrated PayPal as our secure and reliable payment gateway. This collection of REST API endpoints represents the core of the infrastructure that supports the application. Each endpoint is carefully designed to handle various functionalities, allowing users, whether they are customers or walkers, to efficiently interact with the platform. Through this API, key actions can be performed, such as ride creation and management, user authentication and payment validation. We invite you to explore this collection to get a complete overview of how our technology facilitates the connection between dog lovers and passionate walkers. Puppilots is dedicated to making the dog walking experience more enjoyable and convenient for everyone involved.
- 🇦🇷 Diego Vecch - GitHub
- 🇻🇪 Marcos Rivero - GitHub
- 🇨🇴 Sebastian Mayor - GitHub
- 🇨🇱 Ricardo Oyarzo - GitHub
- 🇦🇷 Adrian Camus - GitHub
- 🇵🇪 Sebastian Llamuca - GitHub
Sending email through envialosimple APi. Example of the result:
Developed in Nest.js, PostgreSQL, Prisma, Nginx, Docker and NX Monorepo
✨ This workspace has been generated by Nx, a Smart, fast and extensible build system. ✨
To start the development server run nx serve Puppilots
. Open your browser and navigate to http://localhost:4200/. Happy coding!
If you happen to use Nx plugins, you can leverage code generators that might come with it.
Run nx list
to get a list of available plugins and whether they have generators. Then run nx list <plugin-name>
to see what generators are available.
Learn more about Nx generators on the docs.
To execute tasks with Nx use the following syntax:
nx <target> <project> <...options>
You can also run multiple targets:
nx run-many -t <target1> <target2>
..or add -p
to filter specific projects
nx run-many -t <target1> <target2> -p <proj1> <proj2>
Targets can be defined in the package.json
or projects.json
. Learn more in the docs.
Have a look at the Nx Console extensions. It provides autocomplete support, a UI for exploring and running tasks & generators, and more! Available for VSCode, IntelliJ and comes with a LSP for Vim users.
Just run nx build demoapp
to build the application. The build artifacts will be stored in the dist/
directory, ready to be deployed.
npx create-nx-workspace@latest
cd mname-workspace
nx generate @nrwl/nest:application auth-service
nx generate @nrwl/nest:application email-service
Now Generate auth module, controller and service in app module...
nx generate @nrwl/nest:module auth --project=auth-service
nx generate @nrwl/nest:controller auth --project=auth-service
nx generate @nrwl/nest:service auth --project=auth-service
nx generate @nrwl/nest:module user --project=auth-service
nx generate @nrwl/nest:controller user --project=auth-service
nx generate @nrwl/nest:service user --project=auth-service
Add dependencies for auth service:
npm install --save @nestjs/jwt @nestjs/passport passport passport-jwt bcryptjs
npm install --save-dev @types/passport-jwt @types/bcryptjs
add dependencies for micropservices:
npm install --save @nestjs/microservices
add code
Generate Api-Gateway
nx generate @nrwl/nest:application api-gateway
Add generatePackage option inside each workspace.json inside target->build->options
"generatePackageJson": true,
Then run build for your services
nx run-many --target=build --projects=api-gateway,auth-service --parallel
generate config module and service in api-gateway
nx generate @nrwl/nest:module config --project=api-gateway
nx generate @nrwl/nest:service config --project=api-gateway
docker compose build
docker compose up -d
Note. yo need to have a .env file in the root folder with at least this vars:
DATABASE_URL=
AUTH_JWT_SECRET=
Nx comes with local caching already built-in (check your nx.json
). On CI you might want to go a step further.