Skip to content

Repository files navigation

Lippu

login-page-imageregister-page-imagehome-page-image

Minimum

Users

  • Register new account
  • Login and Logout
  • Edit their profile (at least name, username, password, and e-mail).

Clients

  • Submit a new ticket optionally choosing a department (e.g., "Accounting").
  • List and track tickets they have submitted.
  • Reply to inquiries (e.g., the agent asks for more details) about their tickets and add more information to already submitted tickets.

Agents

  • List tickets from their departments (e.g., "Accounting"), and filter them in different ways (e.g., by date, by assigned agent, by status, by priority, by hashtag).
  • Change the department of a ticket (e.g., the client chose the wrong department).
  • Assign a ticket to themselves or someone else.
  • Change the status of a ticket. Tickets can have many statuses (e.g., open, assigned, closed); some may change automatically (e.g., ticket changes to "assigned" after being assigned to an agent).
  • Edit ticket hashtags easily (just type hashtag to add (with autocomplete), and click to remove).
  • List all changes done to a ticket (e.g., status changes, assignments, edits).
  • Manage the FAQ and use an answer from the FAQ to answer a ticket.

Admins

  • Upgrade a client to an agent or an admin.
  • Add new departments, statuses, and other relevant entities.
  • Assign agents to departments.
  • Control the whole system. (?)

Technologies used

  • Languages

  • HTML

  • CSS

  • PHP

  • Javascript

  • Ajax/JSON

  • PDO/SQLite

  • The website should be as secure as possible.

  • SQL Injection prevention

  • XSS attack protection

  • CSRF attack protection

  • Sound password storage principles

  • Others

  • The design does not need to be top-notch but should be clean and consistent throughout the site.

  • It should also work on mobile devices.

  • Frameworks are not allowed.

Additional Requirements (we do not need to implement all of these)

  • Tickets can have documents attached to them (both by clients and agents).
  • Admins should be able to see key performance indicators and other statistics (e.g., number of tickets closed by agent, number of open tickets per day).
  • Agents can belong to more than one department.
  • Agents can see a client's history.
  • Agents can watch tickets not assigned to them (e.g., when transferring a ticket, the agent can check a box stating that he still wants to follow the ticket).
  • Tickets can be merged together or marked as duplicates from another ticket.
  • Tickets can have to-do lists that must be completed before the ticket is closed.
  • Tasks can also be assigned to agents.
  • If you prefer, you can create your own additional requirements.

Developed by 🧑🏻‍💻

About

Implementation of a simple ticketing system website from scratch, using PHP, HTML, CSS and JavaScript

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages