-
Notifications
You must be signed in to change notification settings - Fork 76
Closed as duplicate
Labels
Description
📘 Issue Description
Create a /properties page in the frontend to display all available properties by fetching them from the backend’s GET /properties endpoint, respecting the StellarRent monorepo structure.
🔍 Steps
- In
apps/web/src/pages/properties.tsx, create a/propertiespage. - In
apps/web/src/components/features/, create aPropertyList.tsxcomponent to display a list of properties. - In
apps/web/src/services/api.ts, create agetPropertiesfunction that makes aGETrequest to the/propertiesendpoint usingfetch. - In
apps/web/src/pages/properties.tsx, use thePropertyListcomponent and thegetPropertiesfunction to display the properties.
✅ Acceptance Criteria
- The user can navigate to
/propertiesand see a list of all available properties. - Each property displays its
title,description,price, and the owner’sname. - If there are no properties, an empty list or a message like "No properties available" is shown.
- The design uses TailwindCSS for a clear and readable layout.
- If there’s an error fetching properties, an error message is displayed.
🌎 References
- Next.js Documentation: https://nextjs.org/docs/pages-router
- React useEffect: https://react.dev/reference/react/useEffect
- TailwindCSS: https://tailwindcss.com/docs
📜 Additional Notes
- This page does not require authentication since it’s a public listing.
- In the future, add a link on each property to a
/properties/[id]page for more details or to initiate a rental request. - Document the component in
apps/web/docs/.
🛠️Technologies Used:
- Next.js (next)
- TailwindCSS (tailwindcss, @tailwindcss/postcss, tailwind-merge)
- tw-animate-css (extension for animations in TailwindCSS)
- Lucide-react (icons)
- Next-themes (dark/light mode in Next.js)
- Zod (validation)
- @simplewebauthn/browser (WebAuthn authentication)
- @stellar/stellar-sdk (interaction with the Stellar blockchain)
- base64url, bigint-conversion, cbor-x (utilities for handling cryptographic data)
- clsx, class-variance-authority (helpers for conditional CSS classes)
- TypeScript (typescript, React and Node types)
- ESLint (eslint, eslint-config-next, @eslint/eslintrc) (linter for best practices)
- shadcn/ui (UI components built with Tailwind and Radix UI)
--
I’ve attached an example of the expected appearance, followed by a visual guide. This document is not purely textual, suggestions for design improvements and creative input are encouraged and appreciated.

Reactions are currently unavailable
