https://github.com/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.
https://github.com/khomsiadam/censync
adobe-xd api css html javascript mvc php sass scss sql uml
Last synced: 11 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/khomsiadam/censync
- Owner: KhomsiAdam
- Created: 2021-07-03T16:15:20.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-08-13T20:42:28.000Z (over 4 years ago)
- Last Synced: 2025-04-23T22:07:02.709Z (11 months ago)
- Topics: adobe-xd, api, css, html, javascript, mvc, php, sass, scss, sql, uml
- Language: JavaScript
- Homepage:
- Size: 9.33 MB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CenSync
"Standardize your incident management processes, centralized and synced in one place."
# Table Of Contents
* [Project Description](#project-description)
* [Flow of the Platform](#flow-of-the-platform)
* [UML Diagrams](#uml-diagrams)
* [Design](#design)
* [Installation](#installation)
* [Database Setup](#database-setup)
* [Usage](#usage)
* [Previews](#previews)
* [Desktop](#desktop)
* [Mobile](#mobile)
# 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](#table-of-contents)
# 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](#table-of-contents)
# UML Diagrams
(Activity, Class, Sequence, Use Case)

[Back to top](#table-of-contents)
# Design
Made with adobe XD (file in design folder).
Quick overview : Desktop

Quick overview : Mobile

[Back to top](#table-of-contents)
# Installation
[Composer](https://getcomposer.org/) and [Node](https://nodejs.org/en/) are required.
Install dependencies:
```bash
composer install
```
```bash
npm install
```
[Back to top](#table-of-contents)
# 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](#table-of-contents)
# Usage
Run PHP's Local Development Server with this custom command in your terminal (localhost:8080):
```bash
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):
```bash
composer serve:remote
```
* Backend made with: https://github.com/KhomsiAdam/PHP_MVC_API_Framework
[Back to top](#table-of-contents)
# Previews
## Desktop:
Account creation:

Dashboard preview:

Account activation by Admin:

Ticket creation by Employee:

Ticket assignement and Note by Admin:

Ticket resolution by Developer or Technician:

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

Account deletion by Admin:

User profile image upload and delete:

Admin deleting user profile image:

[Back to top](#table-of-contents)
## Mobile:
Account creation:

Dashboard preview:

Account activation by Admin:

Ticket creation by Employee:

Ticket assignement and Note by Admin:

Ticket resolution by Developer or Technician:

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

Account deletion by Admin:

User profile image upload and delete:

Admin deleting user profile image:

[Back to top](#table-of-contents)