TaskManagementApp is a comprehensive task management platform designed to streamline project management activities, from task creation to tracking and assignment. Built with the T3 stack, this application integrates a modern frontend built with Next.js and Tailwind CSS, a serverless backend powered by SST on AWS, and a robust database using Supabase.
- Task Creation: Easily create tasks with detailed descriptions.
- Assignment: Assign tasks to team members, set deadlines, and prioritize with tags.
- Tracking: Monitor task progress and ensure timely completion.
- User Profile: Allows team members to manage their personal information and preferences.
- Project Settings: Customize project-specific settings to suit team needs.
- Frontend: Next.js, Tailwind CSS
- Backend: SST (Serverless Stack) on AWS
- Database: Supabase with Prisma ORM
- Authentication: Supabase Authentication
- Testing: Cypress for Unit testing
- Node.js (v14 or later) installed on your local machine.
- npm (Node Package Manager) or Yarn.
-
Clone the repository:
git clone https://github.com/Ankitjha2202/task_management_tool.git
-
Navigate to the project directory:
cd task_management_tool
-
Create a
.env
file in the root directory. -
Add your Supabase, AWS, and Prisma database credentials to the
.env
file:NEXT_PUBLIC_SUPABASE_URL=https://your-supabase-url.supabase.co NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key AWS_ACCESS_KEY_ID=your-access-key-id AWS_SECRET_ACCESS_KEY=your-secret-access-key DATABASE_URL=postgresql://user:password@localhost:5432/mydatabase
- Install the necessary dependencies:
or, if using Yarn:
npm install
yarn install
-
Initialize Prisma:
npx prisma init
-
Migrate the Database: Run the migration to set up the database schema:
npx prisma migrate dev --name init
-
Generate Prisma Client: Generate the Prisma client to interact with the database:
npx prisma generate
-
Start the development server:
npm run dev
or, if using Yarn:
yarn dev
-
Access the application: Open
http://localhost:3000
in your browser.
The application is deployed using AWS and SST. You can access the live version of the application at https://d1mz4vajeg025u.cloudfront.net/.
Cypress is used for end-to-end testing in this project. In addition to testing the main user interface, I have also added tests for utility functions found in the appUtils
folder.
The appUtils
folder contains important utility functions like showSuccess
and showError
. These functions are used to display success and error messages throughout the application. Here’s how you can run the tests:
- Install Cypress as a development dependency:
or, if using Yarn:
npm install cypress --save-dev
yarn add cypress --dev
-
Open Cypress Test Runner:
npx cypress open
-
Run all tests: The Test Runner will display all available tests, including those for the
appUtils
functions. Click on any test to run it.