Calendar grid with the ability to create and organize tasks. Calendar is implemented without using calendar libraries. Fiatures:
- Month and Week pages are implemented
- Creating and editing tasks inside calendar cells (days) in an inline manner.
- Reassign tasks between days (calendar cells) using drag and drop.
- Reorder task in one cell using drag and drop.
- Filter tasks in the calendar by a searching text.
- Creating and editing labels for tasks (color, text).
- Assigning multiple labels to the task.
- Filtering tasks by labels.
- Showing worldwide holidays for each day in the calendar.
$ git clone https://github.com/dmytro-chushko/calendar-tasks.git
$ cd article-manager
$ cd clinet
$ npm i
$ cd ..
$ cd server
$ npm i
$ cd ..
- Make sure you have an actual version of Docker installed on your computer. Download and install if it is necessary.
- Configure
.env
files in both./client
and./server
directories like described below - Staying in root directory build the docker images from command line:
$ docker-compose build
- Run the project:
$ docker-compose up
- You may change settings in
docker-compose.yml
file
- Make sure you have a version of Node.js not lower than 18.18.1 installed on your computer. Download and install if it is necessary.
- Make sure you have PostgreSQL database. Download and install if it is necessary.
- Configure
.env
files in both./client
and./server
directories like described below - Being in the
./server
directory run the back-end application from the command line:
$ npm run start:dev
- Being in the
./client
directory run the front-end application from the command line:
$ npm run dev
Navigate to the address in your browser http://localhost:5173. This page will automatically reload after saving changes to project files.
Navigate to the address in your browser http://localhost:8090/api/docs to see the Swagger API documentation.
Create .env
file in the ./client
diretory and set this variable:
- VITE_BASE_URL = backend application host name
Create .development.env
file in the ./server
directory and set the next variables:
- PORT = application port
- DB_TYPE =
postgres
- POSTGRES_HOST = database host
- POSTGRES_PORT= database port
- POSTGRES_USER = database user
- POSTGRES_PASSWORD= database password
- POSTGRES_DB = databasee name
Or you can use these ones if are using docker-compose running approach:
PORT=8090
DB_TYPE=postgres
POSTGRES_HOST=postgres
POSTGRES_PORT=5432
POSTGRES_USER=postgres
POSTGRES_PASSWORD=root
POSTGRES_DB=postgres
- Framework: NestJS
- Validation: Class Validator
- ORM: TypeORM
- DB: PostgreSQL
- API Protocol: REST(OpenAPISwagger)
- Framework: React SPA (Vite)
- Forms | Validation: Hook Forms, Yup
- State | Query: Redux RTK
- UI: Styled-Components, React-Select
- Docker Compose