This project is a React-based clone of Postman, designed as a reusable and configurable HTTP client component.
It was developed as part of the Web Application 2 course at SUPSI during the academic year 2024β2025.
The main goal is to offer a highly customizable component that can be embedded in other React applications, enabling developers to manage and execute HTTP requests similarly to Postman, while offering flexibility in layout, configuration, and event handling.
- Framework: React + TypeScript
- Build Tool: Vite
- Styling: TailwindCSS + DaisyUI
- Data Fetching & Caching: React Query
- Architecture: Provider-based context architecture with custom hooks
- Reusability: Designed as a modular and embeddable
<HttpClient />
component
- π Send any HTTP request (GET, POST, PUT, DELETE...) with custom headers and body
- π Manage collections of requests grouped by category
- π Search collections and requests (client-side filter)
- πΎ Import and export collections to and from file
- π¬ View HTTP response with type-sensitive preview (HTML, JSON, images)
- π§© React component configurability:
- Source URL of the backend
- Toggle search and collections visibility
- Custom function for
onResponseMessageClick
<HttpClient
url='https://supsi-ticket.cloudns.org/supsi-http/bff/'
search={false}
collections={true}
onResponseMessageClick={(response) => alert(response.statusCode)}
/>
This allows developers to embed the component and handle specific behaviors such as clicking on a response message.
The component interacts with a remote backend at:
https://supsi-ticket.cloudns.org/supsi-http-client/swagger-ui.html
All requests require an
apiKey
parameter (e.g.,?apiKey=marroffino
).
Example endpoints:
- List collections:
GET /bff/collections?apiKey=your_key
- Send request, update, delete:
POST /bff/collections/{id}/requests PUT /bff/requests/{id} DELETE /bff/requests/{id}
A static demo page (index.html
) is available, showcasing:
- Multiple component instances with different configurations
- Real-time interaction with backend
- UI responsiveness and response previews
# Install dependencies
npm install
# Run the dev server
npm run dev
# Build for production
npm run build
βοΈ Completed in April 2025
π No further development planned
Antonio Marroffino
This project was developed for educational purposes as part of the Bachelor's degree in Computer Engineering at SUPSI.