Create personalized sales videos using generated video content and AI-generated avatars.
-
Backend — OutreachVids application backend.
To work properly, fill in the
.env
file. Use the.env.example
file as an example. -
Frontend — OutreachVids application frontend.
To work properly, fill in the
.env
file. Use the.env.example
file as an example. -
Shared — OutreachVids application common modules for reuse.
- NodeJS (20.x.x);
- NPM (10.x.x);
- PostgreSQL (16.4)
- run
npx simple-git-hooks
at the root of the project, before the start (it will set the pre-commit hook for any commits).
erDiagram
users {
uuid id PK
string email UK
string full_name
text password_hash
text password_salt
datetime created_at
datetime updated_at
}
videos {
uuid id PK
uuid user_id FK
string name
string url
datetime created_at
datetime updated_at
}
files {
uuid id PK
string url
enum type "Values: 'video', 'photo'"
datetime created_at
datetime updated_at
}
notifications {
uuid id PK
uuid user_id FK
boolean is_read
enum type "Values: 'render'"
datetime created_at
datetime updated_at
}
users ||--o{ videos : have
users ||--o{ notifications : have
- Install packages:
npm install
- Fill ENVs
- Install pre-commit hooks:
npx simple-git-hooks
- Run migrations:
npm run migrate:dev -w backend
- Run backend:
npm run start:dev -w backend
- Run fronend:
npm run start:dev -w frontend
- Redux
- Redux Toolkit — a state manager.
- Chakra UI - a component library.
- simple-git-hooks — a tool that lets you easily manage git hooks.
- lint-staged — run linters on git staged files.
- dangerjs — automate common code review chores.
- commitlint — helps your team adhere to a commit convention.
- 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.
<project-prefix>-<issue-number>: <ticket-title>
OV-5: Add auth
<type>/<project-prefix>-<issue-number>-<short-desc>
- task
- fix
task/OV-6-add-videoplayer
task/OV-12-add-video-generating-flow
fix/OV-16-fix-videoplayer
<project-prefix>-<issue-number>: <modifier> <description>
+
(add)*
(edit)-
(remove)
OV-6: + title for videoplayer
OV-12: * videoplayer title
OV-16: - videoplayer title
CI/CD implemented using GitHub Actions