ThibaultJanBeyer / tasks-starter-project

A best-practice boilerplate project : currently : Frontend + Backend API with DB

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tasks-starter-project

A simple boilerplate project (tasks app) that follows best practices:

  • Project structure
  • Containerization
  • Error Handling
  • Testing (unit & integration) (e2e tbd)
  • Code linting/prettier
  • Input Validations
  • API designs

The parts can also be used in isolation!
The server however is dependant on the db, if you want only one folder, you can very well also move the db folder into the server folder

Prerequisites

Running

  • yarn start:dev will run all individual parts in dev mode locally and watch them for reloads on file change
  • yarn start will build all containers and run them all with docker-compose (I recommend using Kubernetes in production)
  • yarn build will just build all docker containers

Docker

All parts are containerized using docker, see yarn docker:* for the different commands. If you just want to quickly build and run, yarn docker:dev is your friend. It will build the image, create a common network and run the container sync. You can run it in detached mode using docker:detach.

To build all and run all containers you can run yarn start:init on the root of this repository.

Main Branch

On main branch we currently have a web-client, a server and a db for database.

Database

  • MongoDB

Server

Technology

  • Node
  • Mongoose (for MongoDB)
  • Typescript
  • REST API

Web Client

Technology

  • React+Next (via create-next-app)
  • Testing with Jest
  • Typescript

Other Branches:

db/postgres

Using postgres as database and sequelize as orm

feature/sockets

Includes a chat-app build on socket connection

About

A best-practice boilerplate project : currently : Frontend + Backend API with DB


Languages

Language:TypeScript 82.5%Language:JavaScript 8.8%Language:Shell 7.3%Language:CSS 1.4%