- Need
- Description
- How It Works
- Client Documentation/Screenshots
- API Documentation
- POST Auth Endpoint
- GET Ticket Endpoints
- POST Ticket Endpoints
- PATCH Ticket Endpoints
- GET User Endpoints
- Technologies
- Link to API repo
Virtual students have always dealt with issues getting help with assignments within 48 hours; leaving them stressed and consistently getting behind. Virtual Teachers carry a big role with many students and do the best that they can.
With the state of our nation, dealing with a pandemic forcing families to stay home, so many of them are enrolling their children into the virtual environment. 48 hours+ will become the norm and our children will never catch up.
Virtual Desk is an app for students to get help more efficiently from a pool of approved resources such as teachers and teacher assistants. Not only will students be able to get help faster, it will also free the teachers from being the only available source for students to seek help.
As the student, I can:
- Can use my school district's student email and password to login
- View my "Help Queue" listing all New tickets, In Progress and Closed tickets.
- Open a help ticket by completing a form containing: subject, question and a due date for the assignment or project.
- Close a help ticket when I am satisfied with the help.
As the teacher, I can:
- Can use my school district's teacher email and password to login
- View my "Help Queue" with a list of all current New tickets, In Progress and Closed tickets.
- Find a help ticket that I can pick up containing: subject, question and a due date of when the assignment or project.
- Close a help ticket when the student is satisfied with their help.
- Welcome Page - Click "Login" from the welcome page.
- Login Page - Login with given credentials; this will be an email and a password.
- Help Ticket Queue - Students View - Students you can view new, in progress and closed tickets. You can also choose to open a new ticket or click on a ticket for more information.
- New Ticket Form - Students Only - Fill out form and "Raise your hand" for help.
- View NEW Ticket Info - Students View - Recaps ticket information and lets you know the current ticket progress.
- View IN PROGRESS Ticket Info - Students View - Recaps ticket information and lets you know who picked up your ticket. You can also choose to close the ticket.
- View CLOSED Ticket Info - Students View - Recaps ticket information and leaves information on when ticket was closed.
- Help Ticket Queue - Teacher View - Teachers you can view new student tickets, tickets that they you have picked up and closed tickets. Click on a ticket for more information.
- View New Ticket Info - Teachers View - Recaps ticket information and allows you to "Pick Up" a student's ticket.
- View IN PROGRESS Ticket Info - Teachers View - Recaps ticket information and show when you picked up the ticket. You can also choose to close the ticket.
- View CLOSED Ticket Info - Teachers View - Recaps ticket information and leaves information on when ticket was closed.
Returns JSON data containing auth token
-
URL
/auth/login
-
Method
POST
-
URL Params
None
-
Data Params
- Required:
{email, password}
- Required:
-
Success Response
- Code: 200
- Content:
{authToken: token}
-
Error Response
-
Code: 400
-
Content:
{error: "Missing '${key}' in body"}
OR
-
Code: 400
-
Content:
{error: "Incorrect email or password"}
OR
-
Code: 401
-
Content:
{error: 'User not found'}
-
Returns 200 and JSON data about all tickets
-
URL
/help_tickets
-
Method
GET
-
URL Params
None
-
Data Params
- Required: None
-
Success Response
- Code: 200
- Content:
{id, subject, question, dueDate, created, assigned, closed, student, faculty, ticket_status}
-
Error Response
-
Code: 400
OR
-
Code: 401
-
Content:
{error: 'Unauthorized'}
-
Returns 200 and JSON data about tickets by user
-
URL
/help_tickets/by_user
-
Method
GET
-
URL Params
None
-
Data Params
- Required:
{Authorization", Bearer ${bearerToken}}
- Required:
-
Success Response
- Code: 200
- Content:
{id, subject, question, dueDate, created, assigned, closed, student, faculty, ticket_status}
-
Error Response
-
Code: 400
OR
-
Code: 401
-
Content:
{error: 'Unauthorized'}
-
Returns 200 and JSON data about selected ticket
-
URL
/help_tickets/:id
-
Method
GET
-
URL Params
- Required:
id = <integer>
- Required:
-
Data Params
- Required:
{Authorization", Bearer ${bearerToken}}
- Required:
-
Success Response
- Code: 200
- Content:
{id, subject, question, dueDate, created, assigned, closed, student, faculty, ticket_status}
-
Error Response
-
Code: 400
OR
-
Code: 401
-
Content:
{error: 'Unauthorized'}
-
Returns 201 and JSON data about new ticket
-
URL
/help_tickets
-
Method
POST
-
URL Params
None
-
Data Params
- Required:
{ subject, question, date_due }
- Required:
{Authorization", Bearer ${bearerToken}}
- Required:
-
Success Response
- Code: 201
- Content:
{ id, subject, question, dueDate, created, assigned, closed, student, faculty, ticket_status }
-
Error Response
-
Code: 400
-
Content:
{error: "Missing '${key}' details in body"}
OR
-
Code: 401
-
Content:
{error: 'Unauthorized'}
-
Returns 200 OK
-
URL
/:id
-
Method
PATCH
-
URL Params
- Required:
id = <integer>
- Required:
-
Data Params
- Required:
{faculty_id, date_assigned, ticket_status}
- Required:
{Authorization", Bearer ${bearerToken}}
- Required:
-
Success Response
- Code: 200
-
Error Response
-
Code: 400
-
Content:
{error: 'Could not find ticket'}
OR
-
Code: 401
-
Content:
{error: 'Unauthorized'}
-
Returns 201 and JSON data about all users
-
URL
/users
-
Method
GET
-
URL Params
- Required: None
-
Data Params
- Required: None
-
Success Response
- Code: 201
- Content:
{id, type, firstName, lastName, phone, email, password, firstLogin, lastLogin, grade, subject, intro, profile}
-
Error Response
-
Code: 400
-
Content:
{error: 'Missing ${key} in request body'}
OR
-
Code: 400
-
Content:
{error: 'Email address already in use'}
-
Returns 201 and JSON data about a user
-
URL
/users/user
-
Method
GET
-
URL Params
- Required: None
-
Data Params
- Required:
user = <integer>
- Required:
-
Success Response
- Code: 201
- Content:
{id, type, firstName, lastName, phone, email, password, firstLogin, lastLogin, grade, subject, intro, profile}
-
Error Response
- Code: 401
- Content:
{error: 'Unauthorized'}
Virtual Desk is built using the PERN stack, which includes PostgreSQL, Express, React and Node.