- Install the required dependencies from both the client and server folders.
- Run
npm run dev
from the server folder. - Run
npm start
from the client folder.
- After wireframing I focused on hitting as many of the original requirements as possible within the 4 hour limit. This meant some functionality was missing (front-end 'update a property'), but back-end handling for this feature was in place.
- This approach also meant prioritising breadth rather than depth, so testing and styling were in place, but not extensive.
- After the 4 hour time limit, I returned to play with styling, add a few more tests and make a rudimentary attempt at responsive design.
- React with Typescript
- Tailwind: Tailwind is always a breeze to use, it is compact and intuitive, speeding up development whilst retaining a lot of the freedom of vanilla CSS.
- Express & MongoDB (Mongoose): selected for suitability and familiarity plus ease of use in a short time frame.
- I'd have added front-end functionality to the edit button, perhaps by re-factoring the Form component to allow it to be re-used, and I think the app would also benefit from delete functionality (front & back-end).
- Add search and filtering options to the property dashboard.
- More robust testing, particularly adding some back-end testing (Supertest).
- Improve image handling, both CSS and integrate photo-picking (e.g. Cloudinary).