{"id":26265690,"url":"https://github.com/dxrzc/authtasker","last_synced_at":"2026-05-07T23:04:11.158Z","repository":{"id":260821440,"uuid":"880643756","full_name":"dxrzc/authtasker","owner":"dxrzc","description":"Backend API for authentication and task management with session-based auth, role authorization, caching, and optional local Kubernetes deployment.","archived":false,"fork":false,"pushed_at":"2026-04-08T04:08:54.000Z","size":3043,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-08T04:11:05.979Z","etag":null,"topics":["backend","mongodb","nodejs","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/dxrzc.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-30T04:44:59.000Z","updated_at":"2026-04-08T04:08:53.000Z","dependencies_parsed_at":"2026-01-29T03:08:35.619Z","dependency_job_id":null,"html_url":"https://github.com/dxrzc/authtasker","commit_stats":null,"previous_names":["itsdrc/authtasker","dxrzc/authtasker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dxrzc/authtasker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dxrzc%2Fauthtasker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dxrzc%2Fauthtasker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dxrzc%2Fauthtasker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dxrzc%2Fauthtasker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dxrzc","download_url":"https://codeload.github.com/dxrzc/authtasker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dxrzc%2Fauthtasker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32759448,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-07T02:14:30.463Z","status":"ssl_error","status_checked_at":"2026-05-07T02:14:29.405Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["backend","mongodb","nodejs","typescript"],"created_at":"2025-03-14T03:14:53.105Z","updated_at":"2026-05-07T23:04:11.153Z","avatar_url":"https://github.com/dxrzc.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Authtasker\nBackend API for user authentication and task management with session-based auth, role authorization and caching.\n\n## Overview\nAuthtasker is a backend service that allows users to authenticate securely and collaborate in a shared task environment, where tasks can be created, viewed, and filtered by attributes such as priority, status, and owner.\n\nThis project focuses on authentication flows, authorization, and backend fundamentals, rather than UI or frontend concerns.\n\n## Tech Stack\n- Node.js\n- Express\n- MongoDB\n- Redis\n- Docker\n- Kubernetes (local deployment)\n\n## Core Features\n- User authentication with short-lived session tokens and refresh tokens.\n- Session management with refresh token limits.\n- Role-based authorization (readonly, editor, admin).\n- Email-based flows (verification and password recovery).\n- Task management with status and priority.\n- Redis caching and rate limiting.\n- Secure password handling and input validation.\n- Logging and error handling.\n\n## API Documentation\nThe full API documentation is available via Swagger at the `/api-docs` endpoint when running the application locally.\n\n##  Architecture \u0026 Design.\n- A session-based authentication model with short-lived access tokens and refresh tokens is used to enable secure and controllable sessions.\n- Authentication logic is kept explicit at the application level to simplify session invalidation and authorization.\n- The API is designed in an API-first manner, with explicit actor/target separation and authorization checks applied at the service layer.\n- Role-based authorization controls access to protected resources.\n- Redis is used for caching and rate limiting.\n- Docker is used to ensure consistent environments.\n- Kubernetes is included only for local experimentation.\n\n## How to run locally\n```bash\ngit clone https://github.com/dxrzc/authtasker.git\ncd authtasker\nnpm run dev\n```\n\u003e [!NOTE]\n\u003e Docker must be running locally, as the project relies on Docker Compose.\n\n## Testing\nThe project includes:\n- Unit tests.\n- Integration tests.\n\nTests are executed automatically in the CI pipeline.\n\n## Local Kubernetes Deployment (Optional)\n\nThis project includes a basic Kubernetes setup intended for **local experimentation**.\nIt is **not required** to run the application.\n\n### Requirements\n- Docker\n- kubectl\n- minikube\n\n### Steps\n\n```bash\nminikube start --nodes 2\nminikube addons enable storage-provisioner-rancher\n\ndocker build --target production -t authtasker:prod .\nminikube image load authtasker:prod\n\nkubectl apply -k k8s/overlays/dev\nkubectl port-forward service/authtasker-svc 3001:3000 --namespace authtasker-dev\n```\nThe API will be available at: `http://localhost:3001`.\n\n## What I’d improve next\n\n- Add end-to-end (e2e) tests to cover critical user flows.\n- Implement CI pipelines to build and publish Docker images automatically.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdxrzc%2Fauthtasker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdxrzc%2Fauthtasker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdxrzc%2Fauthtasker/lists"}