{"id":31742870,"url":"https://github.com/santtos0x1/aidflow","last_synced_at":"2026-05-07T15:38:45.352Z","repository":{"id":315669502,"uuid":"1060429421","full_name":"santtos0x1/AidFlow","owner":"santtos0x1","description":"A modern, responsive web application built with Django for efficient support ticket management. This system provides a clean interface for creating, tracking, and resolving customer support requests with role-based access control.","archived":false,"fork":false,"pushed_at":"2025-10-08T15:46:58.000Z","size":1005,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-08T17:53:52.907Z","etag":null,"topics":["app","backend","django","py","python","ticketing-system","webapplication"],"latest_commit_sha":null,"homepage":"","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/santtos0x1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2025-09-19T22:42:49.000Z","updated_at":"2025-10-08T15:47:01.000Z","dependencies_parsed_at":"2025-09-20T01:32:09.410Z","dependency_job_id":"48d3da27-820b-44ed-b88b-6690067793c9","html_url":"https://github.com/santtos0x1/AidFlow","commit_stats":null,"previous_names":["santtos0x1/aidflow"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/santtos0x1/AidFlow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santtos0x1%2FAidFlow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santtos0x1%2FAidFlow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santtos0x1%2FAidFlow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santtos0x1%2FAidFlow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/santtos0x1","download_url":"https://codeload.github.com/santtos0x1/AidFlow/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/santtos0x1%2FAidFlow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001290,"owners_count":26083058,"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","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["app","backend","django","py","python","ticketing-system","webapplication"],"created_at":"2025-10-09T11:19:21.595Z","updated_at":"2026-05-07T15:38:45.344Z","avatar_url":"https://github.com/santtos0x1.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AidFlow 🎫\n\n\u003e A modern, secure, and responsive support ticket management system built with Django\n\n[![Python](https://img.shields.io/badge/Python-3.8+-blue.svg)](https://www.python.org/)\n[![Django](https://img.shields.io/badge/Django-4.x-green.svg)](https://www.djangoproject.com/)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)\n[![Tests](https://img.shields.io/badge/Coverage-99%25-brightgreen.svg)](https://github.com/santtos0x1/aidflow)\n\nAidFlow is a professional-grade ticket management system designed for efficient customer support workflows. Built with security and user experience in mind, it provides a clean, intuitive interface for creating, tracking, and resolving support requests.\n\n![AidFlow Home Page](docs/img/get-started-page.png)\n\n---\n\n## ✨ Features\n\n### Core Functionality\n- 🎫 **Complete Ticket Lifecycle Management** - Create, view, edit, reply, and resolve tickets\n- 👤 **User Authentication \u0026 Authorization** - Secure login system with role-based access\n- 🔍 **Advanced Search** - Quickly find tickets by title or content\n- 📊 **Status Tracking** - Visual indicators for ticket progress (Open, Pending, Closed)\n- ⚡ **Priority System** - Organize by urgency (Urgent, High, Medium, Low)\n- 🏷️ **Category Management** - Group tickets by department or issue type\n- 💬 **Ticket Replies** - Threaded conversation system for ticket resolution\n\n### Technical Highlights\n- 🔒 **Security First** - CSRF protection, XSS prevention, SQL injection safeguards\n- 📱 **Fully Responsive** - Mobile-first design that works on all devices\n- 🧪 **99% Test Coverage** - 544 statements tested with comprehensive unit tests\n- 🎨 **Clean UI/UX** - Minimalist interface with professional styling\n- ⚡ **Performance Optimized** - Efficient database queries and caching\n\n![Ticket Detail View](docs/img/detail-page-1.png)\n\n---\n\n## 🛠️ Tech Stack\n\n| Category | Technology |\n|----------|-----------|\n| **Backend** | Django 4.x, Python 3.8+ |\n| **Database** | SQLite (dev), PostgreSQL (prod-ready) |\n| **Frontend** | HTML5, CSS3 (Grid/Flexbox), Vanilla JavaScript |\n| **Security** | Django Auth, CSRF Tokens, Password Hashing |\n| **Testing** | Django TestCase, Coverage.py (99%) |\n| **Icons** | Font Awesome 6 |\n| **Typography** | Anton SC, Segoe UI |\n\n---\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- Python 3.8 or higher\n- pip package manager\n- Virtual environment (recommended)\n- Git\n\n### Installation\n\n1. **Clone the repository**\n\n```bash\ngit clone https://github.com/santtos0x1/aidflow.git\ncd aidflow\n```\n\n2. **Create and activate virtual environment**\n\n```bash\n# Create venv\npython -m venv venv\n\n# Activate on Windows\nvenv\\Scripts\\activate\n\n# Activate on macOS/Linux\nsource venv/bin/activate\n```\n\n3. **Install dependencies**\n\n```bash\npip install -r requirements.txt\n```\n\n4. **Configure environment variables** (optional)\n\n```bash\n# Create .env file\ncp .env.example .env\n\n# Edit with your settings\nSECRET_KEY=your-secret-key-here\nDEBUG=True\nDATABASE_URL=sqlite:///db.sqlite3\n```\n\n5. **Run database migrations**\n\n```bash\npython manage.py makemigrations\npython manage.py migrate\n```\n\n6. **Create superuser (admin account)**\n\n```bash\npython manage.py createsuperuser\n```\n\n7. **Load initial data** (optional)\n\n```bash\npython manage.py loaddata initial_data.json\n```\n\n8. **Run development server**\n\n```bash\npython manage.py runserver\n```\n\n🎉 **Application is now running at:** `http://127.0.0.1:8000/`\n\n---\n\n## 📋 Usage Guide\n\n### Creating Your First Ticket\n\n1. Navigate to `/tickets/` or click \"Get Started\"\n2. Click the **\"New Ticket\"** button\n3. Fill in the form:\n   - **Title**: Brief description of the issue\n   - **Description**: Detailed explanation\n   - **Category**: Select appropriate category\n   - **Priority**: Choose urgency level\n4. Click **\"Register Ticket\"**\n\n### Managing Tickets\n\n- **View All Tickets**: Home page displays all your tickets in card layout\n- **Search Tickets**: Use the search bar to filter by title\n- **View Details**: Click \"Detail\" button for full information\n- **Edit Ticket**: Update status, priority, or add notes\n- **Reply to Ticket**: Add responses or solutions\n- **Delete Ticket**: Remove unwanted tickets (confirmation required)\n\n### Admin Panel\n\nAccess the Django admin at `/admin/` to:\n- Manage users and permissions\n- Create categories and priorities\n- View system-wide ticket statistics\n- Moderate ticket content\n\n---\n\n## 🗂️ Database Models\n\n### Ticket Model\n\n```python\nclass Ticket(models.Model):\n    uuid = UUIDField(primary_key=True)\n    title = CharField(max_length=200)\n    description = TextField()\n    category = ForeignKey(Category)\n    status = ForeignKey(Status)\n    priority = ForeignKey(Priority)\n    creation_date = DateTimeField(auto_now_add=True)\n    updated_at = DateTimeField(auto_now=True)\n    created_by = ForeignKey(User)\n    solution = TextField(blank=True)\n```\n\n### Supporting Models\n\n- **Category**: Categorize tickets (e.g., Technical, Billing, General)\n- **Priority**: Urgency levels (Urgent, High, Medium, Low)\n- **Status**: Ticket states (Open, Pending, Closed, Solved)\n\n---\n\n## 🔌 API Endpoints\n\n| Method | Endpoint | Description | Auth Required |\n|--------|----------|-------------|---------------|\n| GET | `/` | Landing page | ❌ |\n| GET | `/tickets/` | List all user tickets | ✅ |\n| GET | `/tickets/new/` | Display ticket creation form | ✅ |\n| POST | `/tickets/new/` | Create new ticket | ✅ |\n| GET | `/tickets/search/?q=query` | Search tickets | ✅ |\n| GET | `/tickets/\u003cuuid\u003e/` | View ticket details | ✅ |\n| GET | `/tickets/\u003cuuid\u003e/edit/` | Display edit form | ✅ |\n| POST | `/tickets/\u003cuuid\u003e/edit/` | Update ticket | ✅ |\n| GET | `/tickets/\u003cuuid\u003e/reply/` | Display reply form | ✅ |\n| POST | `/tickets/\u003cuuid\u003e/reply/` | Add reply to ticket | ✅ |\n| POST | `/tickets/\u003cuuid\u003e/delete/` | Delete ticket | ✅ |\n\n---\n\n## 🧪 Testing\n\n### Run Tests\n\n```bash\n# Run all tests\npython manage.py test\n\n# Run specific app tests\npython manage.py test tickets\n\n# Run with coverage report\ncoverage run --source='.' manage.py test\ncoverage report\ncoverage html  # Generate HTML report\n```\n\n### Test Coverage\n\n- **Overall Coverage**: 99% (544/549 statements)\n- **Models**: 97%\n- **Views**: 100%\n- **Forms**: 100%\n- **URLs**: 100%\n\n---\n\n## 🔒 Security Features\n\n- ✅ **CSRF Protection** - Token-based form validation\n- ✅ **XSS Prevention** - Input sanitization and output escaping\n- ✅ **SQL Injection** - Parameterized queries via Django ORM\n- ✅ **Authentication** - Login required decorators on sensitive views\n\n---\n\n## 🤝 Contributing\n\nContributions are welcome! Please follow these steps:\n\n1. **Fork** the repository\n2. **Create** a feature branch\n   ```bash\n   git checkout -b feature/awesome-feature\n   ```\n3. **Commit** your changes\n   ```bash\n   git commit -m 'Add awesome feature'\n   ```\n4. **Push** to the branch\n   ```bash\n   git push origin feature/awesome-feature\n   ```\n5. **Open** a Pull Request\n\n### Development Guidelines\n\n- Write tests for new features (maintain 99% coverage)\n- Follow PEP 8 style guidelines\n- Update documentation for API changes\n- Add type hints where applicable\n- Keep commits atomic and well-described\n\n---\n\n## 📝 License\n\nThis project is licensed under the **Apache License 2.0** - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## 👨‍💻 Author\n\n**Santos0x1**\n- GitHub: [@santtos0x1](https://github.com/santtos0x1)\n\n---\n\n## 🙏 Acknowledgments\n\n- Django Software Foundation for the amazing framework\n- Font Awesome for the icon library\n- The open-source community for inspiration and tools\n\n---\n\n## 📊 Project Status\n\n- ✅ Core Features Complete\n- ✅ 99% Test Coverage\n- 🚧 User Authentication (In Progress)\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**⭐ If you found this project useful, please consider giving it a star! ⭐**\n\nMade with ❤️ using Django\n\n\u003c/div\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanttos0x1%2Faidflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsanttos0x1%2Faidflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsanttos0x1%2Faidflow/lists"}