JC Service Desk

JC Service Desk - Dashboard
JC Service Desk - Dashboard
JC Service Desk - Ticket Details
JC Service Desk - Chat & Notifications
JC Service Desk - Admin Panel
JC Service Desk - Reports
JC Service Desk - Knowledge Base

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 Events
Polling fallback
Flask-Mail
Database
SQLite (dev)
PostgreSQL (prod)
SQLAlchemy ORM
Frontend
Bootstrap 5
Bootstrap 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_filename and isolated directories