- React Framework Next.js + Typescript
- VPS by Vercel
- Styling with Tailwind
- Database via Prisma and MongodDB
Features:
- Full responsiveness
- Credential authentication
- Google authentication
- Github authentication
- Image upload using Cloudinary CDN
- Client form validation and handling using react-hook-form
- Server error handling using react-toast
- Calendars with react-date-range
- Page loading state
- Page empty state
- Booking / Reservation system
- Guest reservation cancellation
- Owner reservation cancellation
- Creation and deletion of properties
- Pricing calculation
- Advanced search algorithm by category, date range, map location, number of guests, rooms and bathrooms
- For example we will filter out properties that have a reservation in your desired date range to travel
- Favorites system
- Shareable URL filters (see Category and CategoryBox components)
- Lets say you select a category, location and date range, you will be able to share URL with a logged out friend in another browser and they will see the same results
- How to write POST and DELETE routes in route handlers (app/api)
- How to fetch data in server react components by directly accessing database (see /actions)
- How to handle files like error.tsx and loading.tsx which are new Next 13 templating files to unify loading and error handling
- Basic understanding of Typescript
- Utilizing advanced library for authentication
- Deep dive into modularity and reusablility of components
- Understanding useCallback() and useMemo() hooks
- Reflecting on the need to sanitize data from DB to be useable in React
- react-icons
- zustand
- axios
- react-hook-form
- react-hot-toast
- next-auth @prisma/client @next-auth/prisma-adapter
- bcrypt + -D @types/bcrypt
- query-string
- world-countries
- react-select
- leaflet + -D @types/leaflet
- react-leaflet
- next-cloudinary + cloudinary for imageupload
- date-fns
- react-date-range + -D @types/react-date-range
- react-spinners