🚧 WORK IN PROGRESS 🚧
Please note that this project is currently under development. Functionality may change and there may be many bugs! 🐜
This is an starter Turborepo enhanced with Zodios, a REST API toolbox that offers end-to-end type safety.
Backend:
- Typescript 🟦
- Zodios 🛠️
- Express 🚆
- Zod 📝
- Supabase 🗃️
Frontend:
- React 🌐
- Vite ⚡
- React Query 📊
- Mantine 🎨
- Zodios 🛠️
Zodios allows you to create a REST API with a clean, intuitive, and declarative syntax. With Zodios, you can develop an Express application with full type safety and autocompletion, making your coding experience more efficient and error-free. Unique to Zodios, it guarantees that all your parameters and responses are fully typed. By default, they are also validated at runtime to prevent unrecoverable errors.
This project is a backend built with TypeScript. It provides a suite of functionalities and services for an unspecified application. The author is Carlos Ricardo Ziegler.
- TypeScript: The project is built in TypeScript, a statically typed version of JavaScript.
- Prisma: Used for ORM, with dedicated scripts for syncing database schemas and generating Prisma client.
- Express.js: This project uses Express.js as its web server framework.
- Docker: Used for services orchestration.
- Redis: Utilized for session management.
- Supabase: Utilized for providing database, authentication, and storage functionalities.
- Zod & Zodios: Used for data validation. Zodios is a REST API toolbox with end-to-end typesafety. It offers a clean, intuitive, and declarative syntax for creating REST APIs. Its sub-packages like
@zodios/core
,@zodios/plugins
,@zodios/express
, and@zodios/openapi
are utilized in this project. - Vitest: Utilized for testing.
- Eslint and Prettier: Utilized to maintain code quality and consistency.
To run this project on your local machine, follow the steps:
- Install the project dependencies with
npm install
oryarn
. - To run the server in development mode, use the command
npm run dev
oryarn dev
. This will start the server and automatically restart whenever there are changes to.ts
files. - To run the tests, use
npm run test
oryarn test
. To run tests with coverage, usenpm run test:coverage
oryarn test:coverage
. - To lint the code, use
npm run lint
oryarn lint
. To auto-fix linting problems, usenpm run lint:fix
oryarn lint:fix
. - To format the code with Prettier, use
npm run format
oryarn format
. - To build the project for production, use
npm run build
oryarn build
. This will generate an optimized version of the project in thedist
folder. - To start the server in production, use
npm run start
oryarn start
.
This project has support for Docker and Docker Compose. To start the services using Docker Compose, use npm run services:up
or yarn services:up
. To stop the services, use npm run services:stop
or yarn services:stop
.
HOSTNAME=localhost
PORT=5001
SUPABASE_PROJECT_ID=
SUPABASE_ANON_KEY=
SUPABASE_SERVICE_ROLE_KEY=
SUPABASE_URL=
SUPABASE_JWT=
DATABASE_URL=
REDIS_URL=
This is a frontend project built with React.js and TypeScript. It provides a user interface for an unspecified application.
- React.js & TypeScript: This project is built with React.js, a popular JavaScript library for building user interfaces, and TypeScript, a statically typed version of JavaScript.
- Vite: This project uses Vite for its build tool and dev server.
- React Query & Tanstack: Used for data fetching, caching, synchronization and updates in React applications.
- React Router Dom: Used for managing routing in the React app.
- React Hook Form: Used for managing form state and validation.
- Zod & Zodios: Used for data validation. Zodios is a REST API toolbox with end-to-end typesafety, utilized in this project through
@zodios/core
and@zodios/react
. - Mantine: Used for providing UI components.
- Eslint: Utilized to maintain code quality and consistency.
- React Testing Library: Utilized for unit and integration testing.
To run this project on your local machine, follow the steps:
- Install the project dependencies with
npm install
oryarn
. - To run the server in development mode, use the command
npm run dev
oryarn dev
. This will start the dev server with hot module replacement. - To lint the code, use
npm run lint
oryarn lint
. - To build the project for production, use
npm run build
oryarn build
. This will generate an optimized version of the project ready for deployment. - To preview the build, use
npm run preview
oryarn preview
.
- TypeScript - JavaScript with syntax for types. Website
- Prisma - Next-generation Node.js and TypeScript ORM. Website
- Express.js - Fast, unopinionated, minimalist web framework for Node.js. Website
- Docker - Empowering App Development for Developers. Website
- Redis - In-memory data structure store. Website
- Supabase - Open Source Firebase Alternative. Website
- Zod - TypeScript-first schema declaration and validation. GitHub by Colin Hacks.
- Zodios - REST API toolbox that offers end-to-end type safety. Website
- Vitest - A new breed of test runner. GitHub by Evan You.
- Eslint - Pluggable JavaScript linter. Website
- Prettier - Opinionated Code Formatter. Website
- React.js - A JavaScript library for building user interfaces. Website
- Vite - Next Generation Frontend Tooling. Website by Evan You.
- React Query - Hooks for fetching, caching and updating asynchronous data in React. Website by Tanner Linsley.
- React Router Dom - Declarative routing for React. Website
- React Hook Form - Performant, flexible and extensible forms with easy-to-use validation. Website
- Mantine - A fully featured React UI library. Website
- React Testing Library - Simple and complete testing utilities that encourage good testing practices. Website