JC Service Desk
Project information
- Category: IT Service Management (ITSM)
- Company: JC Byte - Soluções em Tecnologia
- Project date: 2025
- Status: In Production
- Project Repository: GitHub
JC Service Desk - Multi-Tenant ITSM Platform
Complete IT service desk web application built with Flask, providing ticket management, real-time notifications, integrated chat, password reset, LGPD policy management, and a modern UI. Supports multi-tenant companies with domain validation, branding colors, and role-based access control.
Key Features
Ticket Management
- Create, assign, resolve and close tickets with technician evaluation
- Comments, attachments and status changes
- Email notifications for creation, comments and status changes
- Client rating flow with secure token link after closure
- SLA plans with time tracking and escalation
Real-Time Notifications
- Server-Sent Events (SSE) with polling fallback
- Notification center with unread counter
- Mark as read (individual and bulk)
- Integrated real-time chat per ticket
- Internal messages (visible only to team)
Security & Authentication
- Email confirmation before first login
- Optional 2FA via OTP
- Forgot password with secure time-limited token
- Lockout after 5 failed attempts (~15 min)
- CSRF protection on all forms
Multi-Tenant & Admin
- Multi-tenant companies with domain validation
- Custom branding colors per company
- IP allowlist per company
- Admin panel: users, categories, contracts, SLA, queues
- ITSM extras: Problem and Change Request management
Knowledge Base & LGPD
- Knowledge base articles (CRUD, public/private)
- Search and suggestions in ticket form
- LGPD center: public privacy page
- Admin revision/audit management
- Data retention and anonymization tools
Reports & Extras
- Aggregated reports with period filters
- CSV export
- Satisfaction KPIs and charts
- Waiting room mini-games (Snake and Sudoku)
- Email templates with branding
Technology Stack
Backend
Python 3.10+Flask 3
Flask-SQLAlchemy
Flask-Login
Realtime
Server-Sent EventsPolling fallback
Flask-Mail
Database
SQLite (dev)PostgreSQL (prod)
SQLAlchemy ORM
Frontend
Bootstrap 5Bootstrap Icons
Jinja2 templates
Architecture & Modules
- main (
/): landing, dashboard, profile, LGPD, waiting room - auth (
/auth): login, register, OTP, forgot/reset password - tickets (
/tickets): list, create, detail, comments, attachments, assign/resolve/close, rating - notify (
/notify): real-time notifications via SSE - chat (
/chat): real-time chat per ticket + WhatsApp webhook - kb (
/kb): knowledge base CRUD, search, suggestions - reports (
/reports): aggregated view, CSV export - admin (
/admin): companies, users, categories, SLA, queues, assets, LGPD
- Core: Company, User (client, tech, supervisor, admin), Ticket, TicketComment, Attachment
- SLA & Catalog: SLAPlan, Contract, Category, Queue, Asset
- ITSM: Problem, ChangeRequest
- System: Notification, EmailTemplate, LGPDRevision, AuditLog, GameScore, KnowledgeBaseArticle
- Email confirmation and optional 2FA (OTP)
- Lockout after 5 failures per ~15 min
- IP allowlist per company
- CSRF on all forms; tokens via itsdangerous
- RBAC by role (
role_required) - LGPD retention/anonymization and technical evaluation on close
- Secure file uploads with
secure_filenameand isolated directories