{
"username": string,
"password": string
}
{
"firstname": string,
"lastname": string,
"phone": string,
"email": string,
"picture": string,
"dob": Date,
"gender": string,
"role": string,
"password": string,
"employedAt": Date,
"cv": string
}
{
"id": string,
"employee": Employee,
"entry": Date,
"exit": Date
}
{
"id": string,
"by": Employee,
"reason": string,
"status": string (pending, accepted, declined),
"start": Date,
"end": string
}
{
"id": string,
"issuer": Employee,
"details": string,
"recepient": string,
"eta": Date,
"complete": Boolean,
"closed": Boolean
}
{
"id": string,
"name": string,
"actions": [string]
}
POST /api/admin - Register a new admin
{
"username": string,
"password": string
}
{
"status": number,
"message": string
}
POST /api/admin/login - Sign in as an admin
{
"username": string,
"password": string
}
{
"status": number,
"message": string,
"data": {
"token": string
}
}
GET /api/attendance
{
"status": number,
"data": [{
"entry": Date,
"exit": Date | null,
"employee": [Employee](#employee)
}]
}
POST /api/attendance/entry - Employee can sign in for the day
{
"status": number,
"message": string
}
POST /api/attendance/exit - Employee can sign out for the day
{
"status": number,
"message": string
}
POST /api/attendance/today - Get attendance for the day for an employee
{
"status": number,
"data": [{
"entry": Date,
"exit": Date | null
}]
}
POST /api/employees - Sign up a new employee
{
"firstname": string,
"lastname": string,
"phone": string,
"email": string,
"picture": string,
"dob": Date,
"gender": string,
"role": string,
"password": string,
"cv": string
}
{
"status": number,
"message": string
}
POST /api/employees/login - Sign in as an employee
{
"email": string,
"password": string
}
{
"status": number,
"message": string,
"data": [{
"token": string
}]
}
GET /api/employees - Get all employees
{
"status": number,
"data": [Employee]
}
GET /api/employees/:employeeId - Get an employee
{
"status": number,
"data": [Employee]
}
DELETE /api/employees/:employeeId - Remove an employee
{
"status": number,
"message": string
}
GET /api/employees/:employeeId/leaves - Get all leaves applied for by an employee
{
"status": number,
"data": [Leave]
}
GET /api/employees/:employeeId/tasks - Get all tasks assigned to an employee
{
"status": number,
"data": [Task]
}
POST /api/leaves - Request for a leave
{
"reason": string,
"start": Date,
"end": Date
}
{
"status": number,
"message": string,
"data": [Leave]
}
GET /api/leaves/:leaveId - Get details of a leave
{
"status": number,
"data": [Leave]
}
GET /api/leaves - Get details of all leaves
{
"status": number,
"data": [Leave]
}
PATCH /api/leaves/:leaveId/accept - Grant a leave
{
"status": number,
"message": string
}
PATCH /api/leaves/:leaveId/decline - Refuse a leave
{
"status": number,
"message": string
}
POST /api/tasks - Create and assign a new task
{
"details": string,
"recepient": string (employee id),
"eta": Date
}
{
"status": number,
"message": string,
"data": [Task]
}
GET /api/tasks/:taskId - Get details of a task
{
"status": number,
"data": [Task]
}
GET /api/tasks - Get details of all tasks
{
"status": number,
"data": [Task]
}
PATCH /api/tasks/:taskId/complete - Label a task as complete
{
"status": number,
"message": string
}
PATCH /api/tasks/:taskId/close - Tag a task as closed
{
"status": number,
"message": string
}
PATCH /api/tasks/:taskId/open - Tag a task as open and not complete
{
"status": number,
"message": string
}