Rest API CRUD Project

listing.html
add.html
details.html
edit.html

Product Requirements Document (PRD)

Project: Employee Management CRUD System
Date: July 27, 2025
Author: [Your Name]

1. Purpose & Background

The Employee Management CRUD System aims to provide a simple web-based interface and REST API to manage employee records efficiently. It fulfills the need to maintain essential employee data such as ID, name, department, and salary with complete create, read, update, and delete functionalities.

This product will be used internally by HR staff and managers to maintain an up-to-date employee database with easy access to employee details.

2. Objectives & Goals

  • Enable users to list all employees in a readable tabular format.
  • Allow users to add new employees with required fields (name, department, salary).
  • Support editing employee details with a pre-filled form.
  • Provide a read-only detailed view of individual employees.
  • Allow deletion of employees with user confirmation.
  • REST API endpoints should support all CRUD operations for integration or future enhancements.
  • The UI should be intuitive with responsive, clear action buttons (View, Edit, Delete).

3. Stakeholders

StakeholderRoleResponsibility
Product ManagerOversees requirements & scopeDefine features and priorities
Frontend DeveloperImplements HTML + Axios viewsBuild UI pages and integrate API calls
Backend DeveloperDevelops REST APIImplement API endpoints for employee data
QA TesterQuality assuranceTest functionality and user experience
HR UsersEnd usersUse product to manage employee records

4. User Stories

  • As an HR user, I want to see all employees listed, so that I can find and review employee info quickly.
  • As an HR user, I want to add a new employee, so that I can keep records of newly hired staff.
  • As an HR user, I want to edit employee details, so that I can update information if there are changes.
  • As an HR user, I want to delete an employee, so that I can remove records of former employees.
  • As an HR user, I want to view detailed employee information, so I can get a focused read-only snapshot of an individual’s record.

5. Functional Requirements

IDRequirement DescriptionPriorityNotes
FR-01The system shall display a list of employees with fields: ID, Name, Department, Salary.HighSee listing.html
FR-02The system shall allow adding a new employee with Name, Department, Salary.Highadd.html form submission using Axios
FR-03The system shall allow editing existing employee details via a pre-filled form.Highedit.html with PUT API call
FR-04The system shall allow deletion of an employee with a confirmation popup.HighDelete button triggers confirm popup + Axios DELETE
FR-05The system shall provide a read-only details page to view employee records individually.Mediumdetails.html showing employee details
FR-06The system shall expose the following REST API endpoints: GET /employees, GET /employees/{id}, POST /employees, PUT /employees/{id}, DELETE /employees/{id}.HighBackend API support required

6. Non-functional Requirements

Requirement DescriptionNotes
The system should be responsive and load employee data quickly.Performance: API responses under 2 seconds
Data should be validated on client and server-side.Name and Department non-empty, Salary positive number
System should handle concurrency safely (no data conflicts).Backend-managed
Security: API endpoints to be secured with authentication (future scope).Currently internal use

7. User Interface / UX

  • Tables with borders and clear labeling for readability.
  • Action buttons for View, Edit, Delete placed on each row.
  • Modals or confirm popups for delete actions to prevent accidental deletions.
  • Forms for Add and Edit with required field validation.
  • Navigation links to switch between listing, add, edit, and details pages.

8. API Specification

MethodEndpointDescriptionRequest BodyResponse
GET/api/employeesRetrieve list of all employeesNoneArray of employee objects
GET/api/employees/{id}Retrieve one employee by IDNoneEmployee object
POST/api/employeesCreate a new employeeJSON with name, department, salaryCreated employee object
PUT/api/employees/{id}Update employee by IDJSON with fields to updateUpdated employee object
DELETE/api/employees/{id}Delete employee by IDNoneSuccess status

9. Success Metrics

  • 100% of employee records can be created, viewed, updated, and deleted successfully without errors.
  • User confirmation for delete reduces unintended deletions by 90%.
  • UI loads employee listings and details pages within 2 seconds for up to 1000 records.
  • Positive user feedback from HR team on usability (survey post-release).

10. Timeline & Milestones

MilestoneTarget DateNotes
PRD Approval[Date]Finalize product requirements document.
Design & UI Mockups+1 weekDesign review for all pages.
Backend API Development+3 weeksREST API endpoints complete.
Frontend Development+4 weeksIntegrate UI with API and build views.
QA Testing+5 weeksFunctional and usability testing.
Deployment+6 weeksRelease to production environment.

11. Constraints & Assumptions

  • Current version targets internal HR users only.
  • Authentication & authorization to be added later.
  • Backend API under development or assumed ready to accept calls as described.
  • UI will be web-based, supported in modern browsers.

12. Appendix

  • Sample UI HTML files: listing.html, add.html, edit.html, details.html
  • Axios usage examples for API communication.
  • API specification document (Swagger/OpenAPI recommended for future).