From 8468b49c48d83fba13d95699fdf09eac2cd90031 Mon Sep 17 00:00:00 2001 From: Andrew Trieu Date: Thu, 28 Nov 2024 12:37:45 +0200 Subject: [PATCH] docs: Add README.md with project overview and setup instructions --- README.md | 91 ++++++++++++++++++++++++++++++++++++++++++++++++ docs/tasker.png | Bin 0 -> 54721 bytes 2 files changed, 91 insertions(+) create mode 100644 README.md create mode 100644 docs/tasker.png diff --git a/README.md b/README.md new file mode 100644 index 0000000..65635c1 --- /dev/null +++ b/README.md @@ -0,0 +1,91 @@ +# Tasker.io + +Tasker is a project management tool designed to facilitate team collaboration and task tracking. It provides a range of functionalities to manage projects, assign tasks, and monitor progress. + +As I am primarily a backend/DevOps engineer, I focused on the backend, infrastructure, and CI/CD aspects of the project. The backend is built using a serverless architecture using AWS services such as Lambda, DynamoDB, and Cognito. The infrastructure is defined using Terraform, ensuring the application is scalable and easy to manage. The CI/CD pipeline is implemented using GitHub Actions, automating the testing and deployment process. The frontend is built using Next.js and Tailwind CSS hosted on Amplify. + +The frontend was originally built by [Edward Roh](https://github.com/ed-roh). Special thanks for this amazing app! I lack frontend skills, so I had to borrow his work to make this project complete. + +## Introduction + +### Functionalities + +- Sign up, log in, and sign out. +- Create projects and tasks. +- Assign tasks to team members. +- Update task status and track task progress. +- Light and dark mode support. + +### Limitations + +The application is still in the early stages of development and has several limitations. The following features are not yet implemented: + +- Changing user avatars and settings. +- Changing task details. +- Changing team members. +- Uploading attachments. +- Adding comments to tasks. +- Deleting tasks and projects. + +## Backend and Infrastructure + +The backend is built using a serverless architecture, with **AWS Lambda** functions attached to **API Gateway** endpoints. + +The infrastructure is defined using Terraform, which ensures the application is scalable and easy to manage. Key infrastructure components include: + +- **S3**: Used for storing public images and other static assets. +- **DynamoDB**: Table definitions for storing different entities such as projects, users, teams, and tasks. +- **Cognito**: For user pool management and authentication. + +**System Manager's Parameter Store** is used to store sensitive information and environment variables. + +![Infrastructure Diagram](./docs/tasker.png) + +## CI/CD Pipelines + +Tasker uses GitHub Actions for its CI/CD pipeline, which automates the testing and deployment process. There are 2 main workflows: + +- **Amplify Deployment**: Deploys the frontend application to Amplify. This workflow is triggered on every push to the `tasker-client` directory of the repository. +- **Serverless Deployment**: Deploys the backend application to AWS. This workflow is triggered on every push to the `tasker-server` directory of the repository. Although the architecture is serverless, the directory is named `tasker-server` for consistency. + +GitHub OIDC is used to authenticate the GitHub Actions workflows with AWS. + +## Manual Deployment + +Pre-requisites: + +- **AWS credentials**: Ensure you have AWS credentials configured on your machine. +- **Terraform**. +- **Serverless Framework**. +- **Node.js** and **npm**. + +Steps: + +1. Set up the infrastructure using Terraform. Change the S3 bucket name in `terraform/s3.tf` to a unique name. Run the following commands: + +```bash +npm run infra:deploy +``` + +(Optional) To populate the database with sample data, run the following command: + +```bash +sls invoke local function -f populateSeedData +``` + +2. Deploy the backend using the Serverless Framework. Run the following commands: + +```bash +cd tasker-server +npm install +npm sls:deploy +``` + +3. Deploy the frontend using Amplify. It is recommended to use Amplify Console for this. Follow the instructions in the Amplify Console to deploy the frontend. Set the following environment variables in the Amplify Console to the values created in System Manager's Parameter Store: + +- `NEXT_PUBLIC_API_BASE_URL` +- `NEXT_PUBLIC_COGNITO_USER_POOL_ID` +- `NEXT_PUBLIC_COGNITO_USER_POOL_CLIENT_ID` +- `NEXT_PUBLIC_S3_PUBLIC_IMAGE_URL` + +The repo is a monorepo with the frontend in `tasker-client`, so set `AMPLIFY_MONOREPO_APP_ROOT` to `tasker-client`. diff --git a/docs/tasker.png b/docs/tasker.png new file mode 100644 index 0000000000000000000000000000000000000000..47200f1adc7de5fde4efd095e38fef9ed4befb23 GIT binary patch literal 54721 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 z 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