https://github.com/ahmedmohmd/taskify
Taskify is a task management application built with Node.js, Express, Prisma, and PostgreSQL. It allows users to create, update, read, and delete tasks and sub-tasks efficiently.
https://github.com/ahmedmohmd/taskify
backend express javascript nodejs portfolio postgresql prisma task-manager typescript
Last synced: 2 months ago
JSON representation
Taskify is a task management application built with Node.js, Express, Prisma, and PostgreSQL. It allows users to create, update, read, and delete tasks and sub-tasks efficiently.
- Host: GitHub
- URL: https://github.com/ahmedmohmd/taskify
- Owner: ahmedmohmd
- Created: 2023-09-15T14:43:30.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-10-02T14:11:14.000Z (over 2 years ago)
- Last Synced: 2025-01-15T07:57:45.591Z (over 1 year ago)
- Topics: backend, express, javascript, nodejs, portfolio, postgresql, prisma, task-manager, typescript
- Language: TypeScript
- Homepage: https://taskify-g5n9.onrender.com/api
- Size: 1.72 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# Taskify - Task Management App
[](https://opensource.org/licenses/MIT)
[](https://github.com/ahmedmohmd/taskify/stargazers)
Taskify is a task management application built with Node.js, Express, Prisma, and PostgreSQL. It allows users to create, update, read, and delete tasks and sub-tasks efficiently.
> :information_source:
> This project is solely for showcasing my skills and is not intended for public deployment or use.
## Table of Contents
- [App Features](#app-features)
- [Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Usage](#usage)
- [Routes](#routes)
- [Home Route](#home-route)
- [Auth Route](#auth-route)
- [Users Route](#users-route)
- [Tasks Route](#tasks-route)
- [Sub Tasks Route](#sub-tasks-route)
## Features
- **User Authentication**: Secure user registration and login functionality.
- **Task Management**: Create, update, read, and delete tasks.
- **Subtask Handling**: Manage subtasks associated with each task.
- **User Profile**: View and update user profiles.
## Getting Started
### Prerequisites
Before running Taskify, make sure you have the following installed:
- [Node.js](https://nodejs.org/) (v14 or higher)
- [PostgreSQL](https://www.postgresql.org/) database
### Installation
1. Clone the repository:
```shell
git clone https://github.com/yourusername/taskify.git
cd taskify
```
2. Install dependencies:
```shell
npm install
```
3. Create a `.env` file in the project root directory and set the following environment variables:
```
DATABASE_URL=postgresql://yourusername:yourpassword@localhost:5432/yourdatabase
JWT_SECRET=yourjwtsecret
```
4. Run database migrations:
```shell
npx prisma migrate dev
```
5. Start the application:
```shell
npm start
```
Your Taskify app should now be running at [http://localhost:3000](http://localhost:3000).
## Usage
To use Taskify, users need to authenticate. You can register a new account or log in with existing credentials using the following routes:
- `POST /api/auth/register` - Register a new user.
- `POST /api/auth/login` - Log in with an existing user.
## Routes
### Home Route
- `GET /api` - Welcome to Taskify! This route provides a simple welcome message.
### Auth Route
- `POST /api/auth/register` - Register a new user.
- `POST /api/auth/login` - Log in with an existing user.
### Users Route
- `GET /api/users/:userId` - Retrieve user information.
- `PATCH /api/users/:userId` - Update user information.
- `DELETE /api/users/:userId` - Delete user account.
### Tasks Route
- `GET /api/tasks` - Get a list of all tasks.
- `POST /api/tasks` - Create a new task.
- `GET /api/tasks/:taskId` - Get details of a specific task.
- `PATCH /api/tasks/:taskId` - Update a task.
- `DELETE /api/tasks/:taskId` - Delete a task.
### Sub Tasks Route
- `GET /api/subtasks` - Get a list of all sub-tasks.
- `POST /api/subtasks` - Create a new sub-task.
- `GET /api/subtasks/:subTaskId` - Get details of a specific sub-task.
- `PATCH /api/subtasks/:subTaskId` - Update a sub-task.
- `DELETE /api/subtasks/:subTaskId` - Delete a sub-task.