Skip to content

ebukaodini/task-mgt-postgres

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TASK MGT

TASK MGT is a simple task management app.

MIT License

Table of Contents


Overview

Application alt Application

DB Schema alt DB Schema

Technolgies and Features

  • Technology used in the Frontend: React, Typescript, Tailwind, Socket.io, Zustand (for state management).
  • Technology used in the Backend: Express, Typescript, MongoDB, Socket.io, Jest, Prisma.
  • Key features
    • Authentication with JWT
    • Role Based Authtorization
    • New users can sign up
    • Users can easily navigate through projects and tasks.
    • All users can create tasks
    • All users can drag and drop tasks accross the board column
    • All users can update a task
    • Only admins can delete tasks

Architectures

Separation of Concerns (SoC) / Modular Architecture

A fundamental principle of software engineering that emphasizes the importance of dividing a system into distinct modules or components, each with a specific and independent responsibility.

For this project, SoC was implemented using a modular architecture, where each module is responsible for a single task or functionality.

Dependency Injection (DI)

In Clean Architecture, dependencies are injected, which means the higher-level modules should depend on lower-level modules. This ensures that the business logic is not coupled with the infrastructure details.

For this project, this architecture was implemtented.

Assumptions

These are some assumptions made when developing this application:

  • Projects already exists in the system.
  • The Admin user already exists in the system.
  • The system is a passwordless application.
  • This application is only to be used on a desktop screen (no compatibility with mobile screens).

API Documentation

Here is a link to the Postman Docs.

Setup

Installation

Pre-requisite: Make sure you have docker setup on your machine.

  1. Clone the repository:
$ git clone https://github.com/ebukaodini/task-mgt-postgres.git
  1. Setup environment variables:
$ cp api/.env.sample api/.env
$ cp app/.env.sample app/.env 
  1. From the root dir, build the docker image
$ npm run docker:build
  1. Also from the root dir, spin up all services:
$ npm run docker:up

Usage

Open the application on your browser: http://localhost:3000

Running Tests

Switch to the api directory, and run this command:

$ npm run test

Credentials

These are the default accounts seeded into the database. Use them for different the roles.

About

This is a simple Kanban board that allows you to drag and drop tasks between columns.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published