https://github.com/frankkwabenaaboagye/samapptms
Task Management System - Backend
https://github.com/frankkwabenaaboagye/samapptms
aws lambda python sam serverless state-machine step-functions
Last synced: about 1 month ago
JSON representation
Task Management System - Backend
- Host: GitHub
- URL: https://github.com/frankkwabenaaboagye/samapptms
- Owner: frankkwabenaaboagye
- Created: 2025-01-21T12:45:28.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-08T08:53:08.000Z (over 1 year ago)
- Last Synced: 2025-10-18T02:26:56.155Z (8 months ago)
- Topics: aws, lambda, python, sam, serverless, state-machine, step-functions
- Language: Python
- Homepage: https://main.d3aar2vaqxwbk9.amplifyapp.com
- Size: 142 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Task Management System (TMS)
A serverless task management solution built with AWS SAM, featuring real-time notifications, role-based access control, and automated task tracking.
## Project Overview
TMS is a cloud-native application that helps teams manage tasks efficiently with features like task assignment, deadline tracking, and automated notifications. Built using AWS Serverless Application Model (SAM), it provides a scalable and maintainable solution for task management.
### Key Features
- 🔐 Secure authentication and authorization
- 📋 Task creation, assignment, and tracking
- 📢 Real-time notifications for task updates
- ⏰ Automated deadline reminders
- 👥 Role-based access control (Admin/Team Member)
- 📊 Task status monitoring
- 🔄 Automated workflow management
## Architecture
The system is built using the following AWS services:
- **Authentication**: Amazon Cognito
- **Database**: Amazon DynamoDB
- **Computing**: AWS Lambda
- **API Layer**: Amazon API Gateway
- **Notifications**: Amazon SNS, Amazon SQS
- **Workflow**: AWS Step Functions
## Prerequisites
- AWS Account
- AWS SAM CLI installed
- Node.js 14.x or later
- Python 3.12 or later
- AWS CLI configured with appropriate credentials
## Project Structure
- Important Files are listed here
```plaintext
tms_back_end
├── user_management/
│ ├── app.py
│ ├── reqirements.txt
├── hello_world/
│ ├── app.py
│ ├── reqirements.txt
├── statemachines/
│ ├── expired_tasks.asl.json
├── tests/
│ ├── unit/
│ ├── integration/
├── template.yaml
└── README.md
```
## Security
- All API endpoints are secured with Cognito authentication
- Data is encrypted at rest in DynamoDB
- Secure communication using HTTPS
- Role-based access control implemented
- Environment variables for sensitive data
### Related Repositories
- 🎯 TMS Frontend: [https://github.com/frankkwabenaaboagye/amplify-angular-template](https://github.com/frankkwabenaaboagye/amplify-angular-template)
## Architecture Diagram
```mermaid
graph TB
subgraph "Authentication"
Cognito["🔐 Amazon Cognito
User Pool"]
IdentityPool["🔑 Cognito
Identity Pool"]
end
subgraph "Frontend"
WebApp["💻 Angular
Web Application"]
end
subgraph "Storage"
DDB["📦 Amazon DynamoDB
Tasks Table"]
end
subgraph "Notification System"
SNS1["📢 SNS Topic:
Task Assignment"]
SNS2["📢 SNS Topic:
Task Deadline"]
SNS3["📢 SNS Topic:
Task Completion"]
SNS4["📢 SNS Topic:
Closed Tasks"]
SNS5["📢 SNS Topic:
Reopened Tasks"]
end
subgraph "Message Processing"
SQS1["📫 SQS:
Task Assignment Queue"]
SQS2["📫 SQS:
Deadline Queue"]
end
subgraph "Step Functions"
SF["⚙️ User Subscription
Workflow"]
end
subgraph "Lambda Functions"
L1["λ Subscribe User
To Topic"]
L2["λ Process Deadline
Notification"]
L3["λ Get Tasks"]
L4["λ Update Task"]
L5["λ Get Task By ID"]
L6["λ Delete Task"]
end
%% Connections
WebApp -->|"Authenticates"| Cognito
Cognito -->|"Provides Tokens"| IdentityPool
IdentityPool -->|"Assumes Roles"| WebApp
WebApp -->|"CRUD Operations"| DDB
L3 & L4 & L5 & L6 -->|"Access"| DDB
SF -->|"Manages Subscriptions"| L1
L1 -->|"Subscribe Users"| SNS1
L1 -->|"Subscribe Users"| SNS2
L1 -->|"Subscribe Users"| SNS3
L1 -->|"Subscribe Users"| SNS4
L1 -->|"Subscribe Users"| SNS5
SNS1 -->|"Notifications"| SQS1
SNS2 -->|"Notifications"| SQS2
SQS1 -->|"Triggers"| L2
SQS2 -->|"Triggers"| L2
classDef aws fill:#FF9900,stroke:#232F3E,stroke-width:2px,color:white;
class Cognito,IdentityPool,DDB,SNS1,SNS2,SNS3,SNS4,SNS5,SQS1,SQS2,SF,L1,L2,L3,L4,L5,L6 aws;
```
## CI/CD

## Uesr Subscription Workflow
