Project's stack list is divided into 3 lists
- 👨💼 Package Manager: PNPM
- 🔏 Type system: TypeScript
- 🧪 Test Runner: Jest
- 📈 Coverage reports: Covecov
- 👕 Linter: ESLint
- 💄 Formatter: Prettier
- 🚢 Deployment: Docker
- 📦 Continuous Integration: GitHub Actions
- 🔱 Reverse Proxy Server: NGINX
- ⏱ Runtime: Node.js
- 🖥 GraphQL, REST API and WebSocket Framework: Fastify
- 🔀 Live communication: WebSocket
- 🗃️ Database: MongoDB
- 🗃️ Database framework: Mongoose
- 📝 REST API Documentation: Swagger
- 🖼 UI Framework: React
- 🎨 CSS Framework: Tailwind
- 📝 UI Documentation: Storybook
- 🔨 Bundler: Webpack
- 👕 Style Linter: Stylelint
- Node.js >= 12.22.0
- Docker
Before getting started, make sure that Docker (Desktop) is running if you want to work locally, otherwise commands may fail, etc.
- Use this repository as template or create a new repository by cloning
- Visit Codecov and register your repo
- Head to the repository Settings > Secrets for registering your Codecov token
- Add a new secret:
CODECOV_TOKEN
- Clone or use this repository as template
- Install pnpm
(for obvious reasons):
npm install -g pnpm
- Install packages:
pnpm i
- Run apps:
pnpm dev
- Backend server will run at http://localhost:3000/
- Frontend server will run at http://localhost:3001/
In the root folder, just run:
pnpm dock
- Backend server will run at http://api.nameless.local/
- Frontend server will run at http://nameless.local/
- Storybook server will run at http://storybook.nameless.local/
Make sure to add the following host-names to the host file to imitate the domain names (How to edit)
127.0.0.1 nameless.local
127.0.0.1 api.nameless.local
127.0.0.1 storybook.nameless.local
Run ESLint with Prettier for static analysis and applying consistent code
formatting:
pnpm lint
This project consists of integration tests and unit tests upon the necessity of
requirements
Run Jest for running tests:
pnpm test