You are tasked with creating a "Transaction Management" web application for customers on both mobile and desktop. This application should display a list of payment transactions in a table format with the ability to view, filter, and manage transaction data through API interactions.
- The application should display a list of payment transactions in a table format
- Each payment transaction has an amount, currency, and status
- The application should support filtering by currency and status
- The application can handle pagination for large datasets
- A single-page application with a transaction table
- Filter controls for currency and status
Retrieves a list of transactions with optional filtering and pagination.
Query Parameters:
page(optional): Page number for pagination (starts at 1)pageSize(optional): Number of items per pagecurrency(optional): Filter by currency (USD, EUR, GBP, AUD)status(optional): Filter by status (Success, Failed, Pending)
Response:
{
"data": [
{
"amount": 114.91,
"currency": "USD",
"status": "Success"
}
],
"page": 1,
"pageSize": 10,
"total": 104,
"totalPages": 11
}- The API intentionally includes random failures and delays
- Feel free to use your UI design skills, there is no boundary to how this web application should look
- Feel free to add additional features that enhance the user experience
-
Clone the repository:
git clone <repository-url> cd frontend-engineer-tech-test
-
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open http://localhost:3000 in your browser
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLint