Skip to content
This repository has been archived by the owner on Jan 17, 2023. It is now read-only.

NikitaKurpas/task-management-sample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Task Manager App

[WIP]

A sample task management application written in Next.js (Frontend) and Nest.js (Backend)

Tasks

Comments

Used technologies

  • Docker, Docker Compose
  • Nginx
  • Node.js
  • Next.js
  • React
  • Styled Components
  • Nest.js
  • PostgreSQL

How to run

Docker

docker-compose up --build

Docker Compose will start backend, frontend, database, and reverse proxy.

The app will be available on localhost:8080. Frontend is mounted on /, and API is mounted on /api/.

The UI component sink page is available at /sink

Node.js

Prerequisites: Node.js >= 10, npm >= 6

Frontend

cd frontend
npm ci # install from package-lock.json
npm run dev # start the dev server

App will be available on localhost:3000

The UI component sink page is available at /sink

Backend

cd backend
npm ci # install from package-lock.json
npm run start:dev # start the dev server

App will be available on localhost:3005

Run tests

For both projects

npm run test

Folder structure

  • /fronted - contains code for the frontend
  • /backend - contains code for the backend
  • /proxy - contains Nginx reverse proxy configuration

REST API

  • POST /auth/register - create and register a user
  • POST /auth/login - generate a JWT based on email and password
  • GET /users - get a list of all users
  • GET /users/:id - get a specific user
  • PUT /users/:id - update a user (admins only)
  • GET /users/me - get currently logged in user
  • PUT /users/me - update currently logged in user
  • GET /tasks - get a list of all tasks
  • POST /tasks - create a new task
  • GET /tasks/:taskId - get a task
  • PUT /tasks/:taskId - update a task
  • POST /tasks/:taskId/archive - archive a task (admins only)
  • PUT /tasks/:taskId/assignees/:assigneeId - add assignee to task
  • DELETE /tasks/:taskId/assignees/:assigneeId - remove assignee from task
  • GET /tasks/:taskId/comments - get a list of all comments for the task
  • POST /tasks/:taskId/comments - create a comment for the task
  • PUT /tasks/:taskId/comments/:commentId - update a comment
  • DELETE /tasks/:taskId/comments/:commentId - delete a comment (admins only)

TODO

  • Write backend API mock
  • Write tests for the API
  • Link API to a DB
  • Write frontend in React [WIP]
  • Write tests for frontend
  • Write OpenAPI docs
  • Write remaining tests for the API

Goal of this project

  • Write a sample app that showcases my skills as Full Stack JavaScript Software Engineer.
  • Experiment with Next.js and Nest.js

You can find some of my other projects here: https://github.com/ethericlab

Feel free to reach me at: https://www.linkedin.com/in/nikita-kurpas/

About

A task management application for demo purposes

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages