This is the repository responsible for Streamlet's apps.
-
Backend — Streamlet's application backend.
To work properly, fill in the
.env
file. Use the.env.example
file as an example. -
Frontend — Streamlet's application frontend.
To work properly, fill in the
.env
file. Use the.env.example
file as an example. -
Shared — Streamlet's application common modules for reuse.
- NodeJS (16.x.x);
- NPM (8.x.x);
- PostgreSQL (14.0)
- Docker
- run
npx simple-git-hooks
at the root of the project, before the start (it will set the pre-commit hook for any commits).
- Create
.env
folder at the root project and addapi-db.env
file according to.env.example
- Fill ENVs in each project
npm install
at the rootnpx simple-git-hooks
at the root
Each project run in the separate terminal
- Go to
.docker
folder and run:docker compose up -d
- Apply first migration to DB:
npm run migrate
- Run:
npm run start:backend
- Run:
npm run start:frontend
Static analyzers are used for both frontend and backend projects to ensure basic code quality. Additionally, quality criteria rules are enforced during code review and audit.
erDiagram
users {
string id
string email
string password
boolean isActivated
dateTime created_at
dateTime updated_at
}
- Express – a backend framework.
- InversifyJS - an IoC container
- Prisma – an ORM.
- React – a frontend library.
- Redux + Redux Toolkit – a state manager.
- simple-git-hooks — a tool that lets you easily manage git hooks.
- lint-staged — run linters on git staged files.
- editorconfig — helps maintain consistent coding styles for multiple developers working on the same project across various editors and IDEs.
- prettier — an opinionated code formatter.
- ls-lint — file and directory name linter.
- eslint – find problems in your JS code
- stylelint – Find and fix problems in your CSS code
production
- production source code.development
- staging source code.
<type>/<project-prefix><ticket-number>-<short-desc>
- task
- fix
task/design5-add-signin-page
task/blog12-add-filters
fix/design16-fix-signup-validation
<project-prefix>-<ticket-number>: <modifier> <desc>
+
(add)*
(edit)-
(remove)
blog-5: + form component
design-12: * filter markup
blog-16: - require prop for nickname field