Frontend UI using React
Frontend UI using React
Objective: Create a React-based frontend application that consumes the back-end API for
managing clients, projects, and tasks in the Software Project Management System. The React app
should include a Home Page, Navbar, and separate pages for interacting with the provided API
endpoints, including advanced query capabilities.
1. System Overview
Develop a React-based frontend UI that consumes the Software Project Management API. The
frontend will allow users to perform CRUD operations on clients, projects, and tasks. Additionally, the
UI will support querying projects ending soon, incomplete tasks, and filtering projects by client
name.
2. Functional Requirements
2.1. UI Components
1. Home Page:
o A landing page that welcomes users to the system and provides an introduction to
the app's features.
2. Navbar:
o A navigation bar that allows users to navigate between the Home page, Projects
page, and Tasks page.
o Include links to view all projects, view projects ending soon, incomplete tasks, and
filter projects by client.
3. Projects Page:
o Get All Projects: Display a list of all projects retrieved from the API.
o Create New Project: A form that allows users to add new projects by sending a POST
request to the API.
o Projects Ending Soon: Display projects that are ending within the next 30 days.
o Projects with Incomplete Tasks: Display projects that have unfinished tasks.
4. Tasks Page:
o Display tasks related to a selected project, including task name, status, and assigned
developer.
o A form that allows users to add a new project. On submission, send a POST request
to the API and handle the response.
o A section to fetch and display projects that are ending soon (within the next 30
days).
o A search bar that allows users to filter projects by client name and display the
results.
3. Technical Requirements
1. React:
o Use React functional components with hooks (useState, useEffect) to manage state
and lifecycle methods.
o Use React Router for client-side routing between the different pages.
2. State Management:
o Use React's state management with hooks or, if necessary, implement a simple state
management solution using Context API for global state (like filtering projects).(Can
also use redux.)
o Use Axios or Fetch to consume the API and handle requests such as GET, POST, and
complex queries.
4. CSS Framework:
o Use a CSS framework like Bootstrap or Material-UI to create a clean and responsive
design.
5. Error Handling:
o Handle any errors that may arise from API requests and display appropriate error
messages.
4. Deliverables
1. React Application:
o A fully functional React application that implements all required pages and API
interaction.
2. Code Comments:
o Ensure the code is well-documented, with comments explaining key parts of the
logic.
3. Testing:
o Test the application to ensure it correctly retrieves and displays data from the API.