Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

21 Commits

Repository files navigation

Task Force

Task force is a professional grade task management application focussing the ease of use, simplicity and yet packed with features. We believe that a tool in itself shouldn't be burnden in doing our work in professional lives. Most task managemnt tools such as Jira just reflect the organizational complicance process in the UI. Task force, in contrast lays the emphasis on how the user can effectively manage, document, list down, view, orgaize, convey and configure the tasks uisng an elegant thoughfully crafted UI/UX.

Tech stack:

  1. React
  2. Express
  3. Serene UI( https://github.com/arunkumar413/serene-UI)
  4. Nodejs

directory structure

├── client
│ ├── dist
│ │ ├── bundle.js
│ │ ├── bundle.js.LICENSE.txt
│ │ └── index.html
│ ├── package.json
│ ├── package-lock.json
│ ├── src
│ │ ├── App.js
│ │ ├── index.html
│ │ └── index.js
│ └── webpack.config.js
├── LICENSE
├── README.md
└── server
├── index.js
├── package.json
└── package-lock.json
4 directories, 14 files

Installation

  1. Clone the repo
  2. cd client
  3. Create a .env file and set REACT_APP_API_URL=http://localhost:3000/api
  4. npm install to install the dependencies
  5. npm run serve to run the app in development mode
  6. The app will be served on http://localhost:3030/
  7. npm run build to build the app for production

Installing the express server

  1. cd server
  2. npm install
  3. node index.js to start the server
  4. The api will be served at http://localhost:3000/api and the front end bundled app will be served at http://localhost:3000/

DB Models:

CREATETYPEpublic.task_status_enum AS ENUM (
'Pending',
'Done',
'In progress'
);```

users table:

CREATETABLEpublic.users (
id integerserialNOT NULL,
username character varying(100) NOT NULL,
password character varying(255) NOT NULL,
email character varying(255) NOT NULL,
PRIMARY KEY (id)
);

table user_roles:

CREATETABLEpublic.user_roles (
user_id integerNOT NULL,
role_id integerNOT NULL
);

table roles:

CREATETABLEpublic.roles (
id integerNOT NULL,
name character varying(100) NOT NULL
);

table permissions:

CREATETABLEpublic.permissions (
id integerNOT NULL,
role_id integer,
resource_id integer,
read booleanNOT NULL,
write booleanNOT NULL,
updatebooleanNOT NULL,
deletebooleanNOT NULL
);

table resources:

CREATETABLEpublic.resources (
id integerNOT NULL,
name character varying(100) NOT NULL,
description character varying(100)
);

constraints:

ALTERTABLE ONLY public.users
ADD CONSTRAINT unique_email UNIQUE (email);
ALTERTABLE ONLY public.users
ADD CONSTRAINT users_username_key UNIQUE (username);
ALTERTABLE ONLY public.user_roles
ADD CONSTRAINT user_roles_role_id_fkey FOREIGN KEY (role_id) REFERENCESpublic.roles(id);
ALTERTABLE ONLY public.user_roles
ADD CONSTRAINT user_roles_user_id_fkey FOREIGN KEY (user_id) REFERENCESpublic.users(id);
ALTERTABLE ONLY public.roles
ADD CONSTRAINT roles_name_key UNIQUE (name);
ALTERTABLE ONLY public.roles
ADD CONSTRAINT roles_pkey PRIMARY KEY (id);
ALTERTABLE ONLY public.permissions
ADD CONSTRAINT permissions_pkey PRIMARY KEY (id);
ALTERTABLE ONLY public.permissions
ADD CONSTRAINT unique_permission_role_resource UNIQUE (role_id, resource_id);
ALTERTABLE ONLY public.permissions
ADD CONSTRAINT permissions_resource_id_fkey FOREIGN KEY (resource_id) REFERENCESpublic.resources(id);
ALTERTABLE ONLY public.permissions
ADD CONSTRAINT permissions_role_id_fkey FOREIGN KEY (role_id) REFERENCESpublic.roles(id);
ALTERTABLE ONLY public.resources
ADD CONSTRAINT resources_name_key UNIQUE (name);
ALTERTABLE ONLY public.resources
ADD CONSTRAINT resources_pkey PRIMARY KEY (id);

About

A task manger app

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages