KhomsiAdam / CenSync

This is an app designed for in-house use to manage IT incidents in any type of organization or establishment, using a simple ticketing system. Incidents are classified by type and priority. The purpose of such a system is to waste less time in dealing with issues therefore reducing costs and having better communication and traceability.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CenSync

"Standardize your incident management processes, centralized and synced in one place."

Table Of Contents

Project Description

An IT incident (be it of software or hardware origin) is defined as any event that is not part of the standard operation of an organization and that causes, or may cause, an interruption, reduction, loss or disruption in the quality of this organization's operations, services or functions.

This is a platform/app designed for in-house use by staff, administrators, employees, managers... to manage said incidents in any type of organization or establishment, using a simple ticketing system.

Incidents are classified by type (software, hardware, *service) and priority (high, medium, low). The tickets must be resolved by order of importance.

*services are always of low priorities since they are considered as demands instead of incidents.

The purpose of such a system is to waste less time in dealing with issues therefore reducing costs and having better communication and traceability.

Back to top

Flow of the Platform

It begins by either signing in or signing up for an account (which will require validation from an administrator before being activated).

The targeted audience then can choose to create a ticket, with all the required informations and is in a pending status. The administrator then evaluates the ticket, opens it then assign the issue to the respective actor fit to deal with said issue (in this project as example: a developer for a software issue, a technician for a hardware issue).

After the issue has been dealed with the ticket is marked as resolved.

Back to top

UML Diagrams

(Activity, Class, Sequence, Use Case)

Back to top

Design

Made with adobe XD (file in design folder).

Quick overview : Desktop

censync_xd_desktop

Quick overview : Mobile

censync_xd_mobile

Back to top

Installation

Composer and Node are required.

Install dependencies:

composer install
npm install

Back to top

Database Setup

Import tables from the sql file in the SQL folder SQL/censync_db.sql.

Rename/copy .env.example file into .env (or create a new file), then copy the informations below and paste into your file:

# Database Credentials: *fill with your proper database information
HOST=
DB_NAME=
USERNAME=
PASSWORD=

# Developer mode for error handling: *change to OFF when deploying
DEV_MODE=ON

# Database Account Table:
ACCOUNTS_TABLE=user

# Database Account Columns:
ACCOUNTS_ID=user_id
ACCOUNTS_ROLE=role
ACCOUNTS_EMAIL=email
ACCOUNTS_FIRSTNAME=firstname
ACCOUNTS_LASTNAME=lastname
ACCOUNTS_PASSWORD=password
ACCOUNTS_STATUS=status

# Database Audience Table: *The recipient table for account for 'aud' in JWT token payload
AUDIENCE_TABLE=ticket
# Database Other Tables: *Other tables you may need, as argument for your CRUD operations in controller methods
NOTES_TABLE=note

# Data Source Name: *do not modify! $_ENV['DSN'] is used as first argument for your PDO connection
DSN=mysql:host=${HOST};dbname=${DB_NAME}

# API Token Authentication Secret Keys: *fill with your own key or add new keys as needed
SECRET_KEY=
  • HOST, DB_NAME, USERNAME, PASSWORD: fill with your database credentials.
  • DEV_MODE: for error handling when testing the API, delete it's value or replace to deactivate it when going into production or deploying.
  • SECRET_KEY: fill with your own secret key.

Back to top

Usage

Run PHP's Local Development Server with this custom command in your terminal (localhost:8080):

composer serve:local

If you want to run the server on your local network for testing (your local IP address, ex: 192.168.1.2:8080):

composer serve:remote

Back to top

Previews

Desktop:

Account creation:

censync_create_account_desktop

Dashboard preview:

censync_login_dashboard_desktop

Account activation by Admin:

censync_activate_account_desktop

Ticket creation by Employee:

censync_create_ticket_desktop

Ticket assignement and Note by Admin:

censync_assign_ticket_desktop

Ticket resolution by Developer or Technician:

censync_resolve_ticket_desktop

Note update and deletion, Ticket deletion (by Admin):

censync_delete_ticket_desktop

Account deletion by Admin:

censync_delete_account_desktop

User profile image upload and delete:

censync_upload_image_desktop

Admin deleting user profile image:

censync_delete_image_desktop

Back to top

Mobile:

Account creation:

censync_create_account_mobile

Dashboard preview:

censync_login_dashboard_mobile

Account activation by Admin:

censync_activate_account_mobile

Ticket creation by Employee:

censync_create_ticket_mobile

Ticket assignement and Note by Admin:

censync_assign_ticket_mobile

Ticket resolution by Developer or Technician:

censync_resolve_ticket_mobile

Note update and deletion, Ticket deletion (by Admin):

censync_delete_ticket_mobile

Account deletion by Admin:

censync_delete_account_mobile

User profile image upload and delete:

censync_upload_image_mobile

Admin deleting user profile image:

censync_delete_image_mobile

Back to top

About

This is an app designed for in-house use to manage IT incidents in any type of organization or establishment, using a simple ticketing system. Incidents are classified by type and priority. The purpose of such a system is to waste less time in dealing with issues therefore reducing costs and having better communication and traceability.


Languages

Language:JavaScript 26.4%Language:PHP 25.6%Language:CSS 22.0%Language:SCSS 21.5%Language:Hack 4.4%Language:Shell 0.2%