{"id":29216830,"url":"https://github.com/hamadmulti/taskhorizons","last_synced_at":"2026-02-03T03:34:43.621Z","repository":{"id":301497604,"uuid":"1009433214","full_name":"HamadMulti/taskhorizons","owner":"HamadMulti","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-27T06:09:09.000Z","size":2949,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-27T07:25:41.103Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","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/HamadMulti.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-06-27T06:01:34.000Z","updated_at":"2025-06-27T06:09:12.000Z","dependencies_parsed_at":"2025-06-27T07:26:07.960Z","dependency_job_id":"34f85989-e726-4b0d-ab6a-c8dc31107ea2","html_url":"https://github.com/HamadMulti/taskhorizons","commit_stats":null,"previous_names":["hamadmulti/taskhorizons"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/HamadMulti/taskhorizons","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HamadMulti%2Ftaskhorizons","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HamadMulti%2Ftaskhorizons/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HamadMulti%2Ftaskhorizons/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HamadMulti%2Ftaskhorizons/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HamadMulti","download_url":"https://codeload.github.com/HamadMulti/taskhorizons/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HamadMulti%2Ftaskhorizons/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263243340,"owners_count":23436288,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2025-07-03T01:30:22.190Z","updated_at":"2026-02-03T03:34:43.575Z","avatar_url":"https://github.com/HamadMulti.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TaskHorizons\n\n**TaskHorizons** is a modern, full-featured task and project management platform built with **Django** and **TailwindCSS**. It offers seamless user authentication, robust task tracking, productivity analytics, and an intuitive UI all designed for teams and individuals who want to get things done efficiently.\n\n## Project Structure\n```bash\ntaskhorizons/\n├── accounts\n│   ├── admin.py\n│   ├── apps.py\n│   ├── forms.py\n│   ├── __init__.py\n│   ├── middleware.py\n│   ├── models.py\n│   ├── templatetags\n│   │   └── custom_filters.py\n│   ├── tests.py\n│   ├── urls.py\n│   ├── utils.py\n│   └── views.py\n├── dashboard\n│   ├── apps.py\n│   ├── __init__.py\n│   ├── tests.py\n│   ├── urls.py\n│   └── views.py\n├── db.sqlite3\n├── Dockerfile\n├── .dockerignore\n├── .env\n├── frontend\n│   ├── apps.py\n│   ├── __init__.py\n│   ├── static_src\n│   │   ├── .gitignore\n│   │   ├── package.json\n│   │   ├── package-lock.json\n│   │   ├── postcss.config.js\n│   │   ├── src\n│   │   │   └── styles.css\n│   │   └── tailwind.config.js\n│   └── templates\n│       ├── auth\n│       │   ├── enable_email_otp.html\n│       │   ├── login.html\n│       │   ├── onboarding\n│       │   │   ├── onboarding_base.html\n│       │   │   ├── onboarding_complete.html\n│       │   │   ├── step_1.html\n│       │   │   ├── step_2.html\n│       │   │   ├── step_3.html\n│       │   │   └── step_4.html\n│       │   ├── password_reset_complete.html\n│       │   ├── password_reset_confirm.html\n│       │   ├── password_reset_done.html\n│       │   ├── password_reset.html\n│       │   ├── profile.html\n│       │   ├── profile_modal.html\n│       │   ├── qr_code_modal.html\n│       │   ├── register.html\n│       │   ├── verify_email_otp.html\n│       │   └── verify_totp_otp.html\n│       ├── base.html\n│       ├── _base_two.html\n│       ├── breadcrumb.html\n│       ├── dashboard\n│       │   ├── dashboard.html\n│       │   └── index.html\n│       ├── dashboard_base.html\n│       ├── footer.html\n│       ├── landing\n│       │   ├── cta.html\n│       │   ├── features.html\n│       │   ├── hero.html\n│       │   ├── home.html\n│       │   └── testimonials.html\n│       ├── nav.html\n│       ├── navigation.html\n│       ├── projects\n│       │   ├── project_confirm_delete.html\n│       │   ├── project_form.html\n│       │   └── project_list.html\n│       ├── registration\n│       │   └── password_reset_email.html\n│       ├── tasks\n│       │   ├── task_confirm_delete.html\n│       │   ├── task_detail.html\n│       │   ├── task_form.html\n│       │   └── task_list.html\n│       └── two_factor\n│           └── _base.html\n├── .gitignore\n├── landing\n│   ├── admin.py\n│   ├── apps.py\n│   ├── __init__.py\n│   ├── models.py\n│   ├── tests.py\n│   ├── urls.py\n│   └── views.py\n├── manage.py\n├── media\n│   └── profile_pictures\n├── project\n│   ├── admin.py\n│   ├── apps.py\n│   ├── forms.py\n│   ├── __init__.py\n│   ├── models.py\n│   ├── tests.py\n│   ├── urls.py\n│   └── views.py\n├── README.md\n├── requirements.txt\n├── settings\n│   ├── asgi.py\n│   ├── context_processors.py\n│   ├── __init__.py\n│   ├── settings.py\n│   ├── urls.py\n│   └── wsgi.py\n├── task\n│   ├── admin.py\n│   ├── apps.py\n│   ├── forms.py\n│   ├── __init__.py\n│   ├── models.py\n│   ├── tests.py\n│   ├── urls.py\n│   └── views.py\n└── webhook.log\n```\n\n## Features\n\n* **User Authentication**\n\n  * Login, Registration, Password Reset\n  * Two-Factor Authentication (Email \u0026 TOTP)\n  * Profile Management\n\n* **Task \u0026 Project Management**\n\n  * Create, assign, update and delete tasks/projects\n  * User-based task filtering\n  * Deadlines, descriptions, and status tracking\n\n* **Analytics Dashboard**\n\n  * Visualize productivity\n  * Track total/completed/pending tasks\n  * Admin-level user performance insights\n\n* **Landing Pages**\n\n  * Hero section, testimonials, features, and call-to-action\n\n* **Frontend**\n\n  * Built using **TailwindCSS**\n  * Responsive, modern, and accessible design\n\n## ⚙️ Tech Stack\n\n* **Backend:** Django 4+, SQLite3 (default), Django ORM\n* **Frontend:** TailwindCSS, Django Templates\n* **Auth:** Django built-in auth, 2FA via email and QR\n* **Deployment Ready:** Dockerized\n\n## Getting Started\n\n### Clone the Repository\n\n```bash\ngit clone git@github.com:HamadMulti/taskhorizons.git\ncd taskhorizons\n```\n\n### Setup Virtual Environment\n\n```bash\npython3 -m venv venv\nsource venv/bin/activate\n```\n\n### Install Dependencies\n\n```bash\npip install -r requirements.txt\n```\n\n### TailwindCSS Setup\n\nGo to:\n\n```bash\ncd frontend/static_src\nnpm install\nnpm run build\n```\n\nThis compiles the Tailwind styles to `frontend/static/`.\n\n### Set Environment Variables\n\nCreate a `.env` file:\n\n```ini\nDEBUG=True\nSECRET_KEY=your-secret-key\nALLOWED_HOSTS=localhost,127.0.0.1\nEMAIL_HOST_USER=your-email@example.com\nEMAIL_HOST_PASSWORD=your-email-password\n```\n\n### Migrate DB and Create Superuser\n\n```bash\npython manage.py makemigrations django_otp\npython manage.py migrate\npython manage.py createsuperuser\n```\n\n### Run the App\n\n```bash\npython manage.py runserver\n```\n\nVisit: `http://127.0.0.1:8000`\n\n## Docker Setup (Optional)\n\n```bash\ndocker build -t taskhorizons .\ndocker run -p 8000:8000 taskhorizons\n```\n\n## Testing\n\nRun Django's built-in tests:\n\n```bash\npython manage.py test\n```\n\n## Media \u0026 Static Files\n\nMake sure `media/` is writeable:\n\n```bash\nmkdir -p media/profile_pictures\nchmod -R 755 media/\n```\n\n## Contributing\n\nContributions are welcome! Please fork the repository and submit a pull request.\n\n## License\n\nMIT License. See `LICENSE` file for details.\n\n## Credits\n\nMade with ❤️ using Django + TailwindCSS by \\[HamadMulti].","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhamadmulti%2Ftaskhorizons","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhamadmulti%2Ftaskhorizons","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhamadmulti%2Ftaskhorizons/lists"}