{"id":24886779,"url":"https://github.com/frankkwabenaaboagye/samapptms","last_synced_at":"2026-05-16T17:33:48.597Z","repository":{"id":273532385,"uuid":"920027805","full_name":"frankkwabenaaboagye/samapptms","owner":"frankkwabenaaboagye","description":"Task Management System - Backend","archived":false,"fork":false,"pushed_at":"2025-02-08T08:53:08.000Z","size":145,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-18T02:26:56.155Z","etag":null,"topics":["aws","lambda","python","sam","serverless","state-machine","step-functions"],"latest_commit_sha":null,"homepage":"https://main.d3aar2vaqxwbk9.amplifyapp.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/frankkwabenaaboagye.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-01-21T12:45:28.000Z","updated_at":"2025-02-08T08:53:11.000Z","dependencies_parsed_at":"2025-01-21T13:41:31.407Z","dependency_job_id":"144a05b0-851e-47b1-852f-befc4274e6db","html_url":"https://github.com/frankkwabenaaboagye/samapptms","commit_stats":null,"previous_names":["frankkwabenaaboagye/samapptms"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/frankkwabenaaboagye/samapptms","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frankkwabenaaboagye%2Fsamapptms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frankkwabenaaboagye%2Fsamapptms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frankkwabenaaboagye%2Fsamapptms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frankkwabenaaboagye%2Fsamapptms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/frankkwabenaaboagye","download_url":"https://codeload.github.com/frankkwabenaaboagye/samapptms/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frankkwabenaaboagye%2Fsamapptms/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33111759,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","lambda","python","sam","serverless","state-machine","step-functions"],"created_at":"2025-02-01T15:16:28.099Z","updated_at":"2026-05-16T17:33:48.555Z","avatar_url":"https://github.com/frankkwabenaaboagye.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Task Management System (TMS)\n\nA serverless task management solution built with AWS SAM, featuring real-time notifications, role-based access control, and automated task tracking.\n\n## Project Overview\n\nTMS 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.\n\n### Key Features\n\n- 🔐 Secure authentication and authorization\n- 📋 Task creation, assignment, and tracking\n- 📢 Real-time notifications for task updates\n- ⏰ Automated deadline reminders\n- 👥 Role-based access control (Admin/Team Member)\n- 📊 Task status monitoring\n- 🔄 Automated workflow management\n\n## Architecture\n\nThe system is built using the following AWS services:\n\n- **Authentication**: Amazon Cognito\n- **Database**: Amazon DynamoDB\n- **Computing**: AWS Lambda\n- **API Layer**: Amazon API Gateway\n- **Notifications**: Amazon SNS, Amazon SQS\n- **Workflow**: AWS Step Functions\n\n## Prerequisites\n\n- AWS Account\n- AWS SAM CLI installed\n- Node.js 14.x or later\n- Python 3.12 or later\n- AWS CLI configured with appropriate credentials\n\n## Project Structure\n\n- Important Files are listed here\n\n```plaintext\ntms_back_end\n├── user_management/\n│   ├── app.py\n│   ├── reqirements.txt\n├── hello_world/\n│   ├── app.py\n│   ├── reqirements.txt\n├── statemachines/\n│   ├── expired_tasks.asl.json\n├── tests/\n│   ├── unit/\n│   ├── integration/\n├── template.yaml\n└── README.md\n```\n\n## Security\n- All API endpoints are secured with Cognito authentication\n- Data is encrypted at rest in DynamoDB\n- Secure communication using HTTPS\n- Role-based access control implemented\n- Environment variables for sensitive data\n\n### Related Repositories\n- 🎯 TMS Frontend: [https://github.com/frankkwabenaaboagye/amplify-angular-template](https://github.com/frankkwabenaaboagye/amplify-angular-template)\n\n\n## Architecture Diagram\n```mermaid\n\ngraph TB\n    subgraph \"Authentication\" \n        Cognito[\"🔐 Amazon Cognito\u003cbr/\u003eUser Pool\"]\n        IdentityPool[\"🔑 Cognito\u003cbr/\u003eIdentity Pool\"]\n    end\n\n    subgraph \"Frontend\"\n        WebApp[\"💻 Angular\u003cbr/\u003eWeb Application\"]\n    end\n\n    subgraph \"Storage\"\n        DDB[\"📦 Amazon DynamoDB\u003cbr/\u003eTasks Table\"]\n    end\n\n    subgraph \"Notification System\"\n        SNS1[\"📢 SNS Topic:\u003cbr/\u003eTask Assignment\"]\n        SNS2[\"📢 SNS Topic:\u003cbr/\u003eTask Deadline\"]\n        SNS3[\"📢 SNS Topic:\u003cbr/\u003eTask Completion\"]\n        SNS4[\"📢 SNS Topic:\u003cbr/\u003eClosed Tasks\"]\n        SNS5[\"📢 SNS Topic:\u003cbr/\u003eReopened Tasks\"]\n    end\n\n    subgraph \"Message Processing\"\n        SQS1[\"📫 SQS:\u003cbr/\u003eTask Assignment Queue\"]\n        SQS2[\"📫 SQS:\u003cbr/\u003eDeadline Queue\"]\n    end\n\n    subgraph \"Step Functions\"\n        SF[\"⚙️ User Subscription\u003cbr/\u003eWorkflow\"]\n    end\n\n    subgraph \"Lambda Functions\"\n        L1[\"λ Subscribe User\u003cbr/\u003eTo Topic\"]\n        L2[\"λ Process Deadline\u003cbr/\u003eNotification\"]\n        L3[\"λ Get Tasks\"]\n        L4[\"λ Update Task\"]\n        L5[\"λ Get Task By ID\"]\n        L6[\"λ Delete Task\"]\n    end\n\n    %% Connections\n    WebApp --\u003e|\"Authenticates\"| Cognito\n    Cognito --\u003e|\"Provides Tokens\"| IdentityPool\n    IdentityPool --\u003e|\"Assumes Roles\"| WebApp\n\n    WebApp --\u003e|\"CRUD Operations\"| DDB\n    L3 \u0026 L4 \u0026 L5 \u0026 L6 --\u003e|\"Access\"| DDB\n\n    SF --\u003e|\"Manages Subscriptions\"| L1\n    L1 --\u003e|\"Subscribe Users\"| SNS1\n    L1 --\u003e|\"Subscribe Users\"| SNS2\n    L1 --\u003e|\"Subscribe Users\"| SNS3\n    L1 --\u003e|\"Subscribe Users\"| SNS4\n    L1 --\u003e|\"Subscribe Users\"| SNS5\n\n    SNS1 --\u003e|\"Notifications\"| SQS1\n    SNS2 --\u003e|\"Notifications\"| SQS2\n\n    SQS1 --\u003e|\"Triggers\"| L2\n    SQS2 --\u003e|\"Triggers\"| L2\n\n    classDef aws fill:#FF9900,stroke:#232F3E,stroke-width:2px,color:white;\n    class Cognito,IdentityPool,DDB,SNS1,SNS2,SNS3,SNS4,SNS5,SQS1,SQS2,SF,L1,L2,L3,L4,L5,L6 aws;\n\n```\n\n## CI/CD\n![](./image.png)\n\n## Uesr Subscription Workflow\n![](./imagesFold/image.png)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrankkwabenaaboagye%2Fsamapptms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrankkwabenaaboagye%2Fsamapptms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrankkwabenaaboagye%2Fsamapptms/lists"}