- Developer: Dmytro Kotielevskyi
- Email: [email protected]
- GitHub: deema089786
- Install NVM and run
nvm use
or install Node version based on.nvmrc
file. - Run
npm i
- Start database. Exmaple by using Docker:
docker run --name=demo-A-api-pg --env=POSTGRES_DB=demo-a --env=POSTGRES_USER=root --env=POSTGRES_PASSWORD=root --volume=<path to project directry>/demo-A/docker-volumes/demo-A-api-db:/var/lib/postgresql/data -p 5432:5432 -d postgres:16-alpine
- Add
.env
files intoapps/api
andapps/app
. See.env.example
for configuration. - Start API: run
nx run app:serve
- Start FrontEnd app: run
nx tbd
You can see an example of a full-stack application that can be used in various ways. It allows people to showcase the services they provide, describe them with media content, set prices, and receive feedback from customers. At the same time, customers can view available services, contact the owner, and make purchases.
- Monorepo: The entire project is built using the NX monorepo framework.
- Language: TypeScript exclusively.
- BackEnd API: The API is developed with the NestJS framework.
- FrontEnd App: The frontend is built with Vite and Material UI as the primary UI library.
- Services and Technologies Used: 6. Database: PostgreSQL with TypeORM. 7. Validation: Zod. 8. Storage: Supabase. 9. UI: Material UI. 10. Authentication/Authorization: Google Auth, JWT (login/password). 11. Client API: TanStack Query.
- Type Safety: The project uses the same Zod schemas for both API payload validation and frontend form validation, ensuring consistency.
- Storybook First: Most components are created in isolation as "dumb" components and tested in Storybook first.
- UI: The project follows an atomic design approach for building the user interface.
- Modules or Feature Slices: Logic is organized into related sections using the feature slices approach.
- Storybook component testing
- Frontend runtime configuration