Create personalised checklists and action plans for any life goal - development, career, health, creativity, and more. Just complete a short quiz and get an individual plan with tasks, tips and structure for 5, 14 or 21 days.
- Pay attention, that we have certain quality criteria, which we should follow during application development.
TODO: Add development deployment link
The app helps users achieve their life goals—whether in development, career, health, or creativity—by generating personalized checklists and action plans. After completing a short quiz, users receive a structured plan with tasks and tips for 5, 14, or 21 days.
- NodeJS (22.x.x);
- npm (10.x.x);
- PostgreSQL (15.4)
erDiagram
users ||--o{ plan : "plan"
users {
int id PK
dateTime created_at
dateTime updated_at
varchar email
varchar name
date dob
text password_hash
text password_salt
}
plan ||--|{ plan_day : "plan_day"
plan {
int id PK
varchar title
int user_id FK
int duration
varchar intensity
dateTime created_at
dateTime updated_at
}
plan_day ||--|{ task : "plan_day"
plan_day {
int id PK
int day_number
int plan_id FK
dateTime created_at
dateTime updated_at
}
task o|--|| execution_time_type : "enum:execution_time_type"
task {
int id PK
varchar title
text description
int order
int plan_day_id FK
boolean is_completed
execution_time_type execution_time
dateTime created_at
dateTime updated_at
dateTime completed_at
}
execution_time_type {
morning morning
afternoon afternoon
evening evening
}
TODO: add architecture
- React — a frontend library
- Redux + Redux Toolkit — a state manager
-
assets - static assets (images, global styles)
-
libs - shared libraries and utilities
2.1 components - plain react components
2.2 enums
2.3 helpers
2.4 hooks
2.5 modules - separate features or functionalities
2.6 types
-
modules - separate app features or functionalities
-
pages - app pages
-
db - database data (migrations, seeds)
-
libs - shared libraries and utilities
2.1 enums
2.2 exceptions
2.3 helpers
2.4 modules - separate features or functionalities
2.5 types
-
modules - separate app features or functionalities
As we are already using js on both frontend and backend it would be useful to share some contracts and code between them.
- Zod — a schema validator
- Create and fill all .env files. These files are:
- apps/frontend/.env
- apps/backend/.env
You should use .env.example files as a reference.
-
Install dependencies:
npm install
. -
Install pre-commit hooks:
npx simple-git-hooks
. This hook is used to verify code style on commit. -
Run database. You can run it by installing postgres on your computer.
-
Build 'shared' folder.
npm run build -w shared
-
Apply migrations:
npm run migrate:dev -w backend
-
Run backend:
npm run start:dev -w backend
-
Run frontend:
npm run start:dev -w frontend
<type>: <ticket-title> <project-prefix>-<issue-number>
For the full list of types check Conventional Commits
Examples:
feat: add dashboard screen cy-123
<issue-number>-<type>-<short-desc>
Examples:
123-feat-add-dashboard
12-feat-add-user-flow
34-fix-user-flow
We use Conventional Commits to handle commit messages
<type>: <description> <project-prefix>-<issue-number>
Examples:
feat: add dashboard component cy-45
fix: update dashboard card size cy-212
CI/CD implemented using GitHub Actions