Welcome to the SMG Real Estate React Assignment! 🤩
With either yarn or npm installed, run:
yarn install | npm install
yarn start | npm start
This is a TypeScript React project. Complete the following challenges in order:
-
Display Listings
- Use the existing
Listing
component fromsrc/components/Listing
- Load and display all listings from
/src/assets/listings.json
on the Home Page
- Use the existing
-
Navigation
- Implement listing detail pages with clickable listings
- Add a back button for navigation to home page
- Use React Router for routing
-
Card Component
- Create a new reusable
Card
component - Required elements:
- Featured image
- Title
- Description (truncated to 100 characters)
- Create a new reusable
-
Styling
- Add responsive CSS styling
- Ensure consistent design across components
- Consider using CSS-in-JS or a styling framework of your choice
-
Testing
- Write unit tests for all components
- Achieve meaningful test coverage
- Use React Testing Library or Jest
-
API Integration
- Create a simple backend server
- Implement REST API endpoints for listings
- Refactor frontend to fetch data from API instead of static JSON
- Handle loading and error states
-
UI Enhancement
- Reference: Implement features inspired by Homegate.ch
- Focus on visual similarity and user experience
-
Feature Addition
- Choose and implement one additional feature from Homegate.ch
- Document your choice and reasoning
- Code quality and organization
- TypeScript usage
- Component reusability
- Testing coverage
- UI/UX considerations