Find the words and learn together.
The project aims to help you find unknown words, their definitions and pronunciations. You will be able to save them for future in your profile.
erDiagram
USER ||--o{ WORD-VIEW : views
WORD ||--o{ WORD-VIEW : viewed
USER ||--o{ FAVORITE-WORDS : "favorites"
WORD ||--o{ FAVORITE-WORDS : "favorited by"
USER {
int id PK "Primary Key"
string email "Unique, Not Null"
string fullName "Not Null"
string password "Not Null"
datetime createdAt "Default CURRENT_TIMESTAMP, Not Null"
datetime updatedAt "Default CURRENT_TIMESTAMP, Not Null"
}
WORD {
int id PK "Primary Key"
string word "Not Null"
string partOfSpeech
boolean isWordOfTheDay "Default FALSE"
datetime createdAt "Default CURRENT_TIMESTAMP, Not Null"
datetime updatedAt "Default CURRENT_TIMESTAMP, Not Null"
}
WORD-VIEW {
int id PK "Primary Key"
int userId FK "Foreign Key, Not Null, References USER.id"
int wordId FK "Foreign Key, Not Null, References WORD.id"
int count "Default 1"
datetime createdAt "Default CURRENT_TIMESTAMP, Not Null"
datetime updatedAt "Default CURRENT_TIMESTAMP, Not Null"
}
FAVORITE-WORDS {
int userId FK "Foreign Key, Not Null, References USER.id"
int wordId FK "Foreign Key, Not Null, References WORD.id"
datetime createdAt "Default CURRENT_TIMESTAMP, Not Null"
datetime updatedAt "Default CURRENT_TIMESTAMP, Not Null"
}
- Create and fill all
.env
files, use.env.example
for reference. - Create the database and run the migrations by
npm run migrate:up
- Install dependencies:
npm install
- Install pre-commit hooks:
npx simple-git-hooks
. This hook is used to verify code style on commit. - Build an app:
npm run build
. - Start an app:
npm run start
.
Or instead of building a project you can run it in the dev mode: npm run start:dev
<type>: <ticket-title> <project-prefix>-<issue-number>
For the full list of types check Conventional Commits
Examples:
feat: add search field od-12
<issue-number>-<type>-<short-desc>
Examples:
12-feat-add-search-field
34-fix-user-profile
We use Conventional Commits to handle commit messages
<type>: <description> <project-prefix>-<issue-number>
Examples:
feat: update word display od-54
fix: make button text to be bold od-13