Restify is an Airbnb clone developed as a project for CSC309H1: Programming on the Web at the University of Toronto. It is built using a frontend in React TypeScript, a backend in Django Rest Framework (Python), and incorporates Tailwind for styling.
- User authentication: Register, login, and logout functionality.
- Property listings: Users can create, update, and delete property listings, including details such as title, description, price, location, and images.
- Search and filtering: Users can search for properties based on location, price, and other criteria.
- Booking management: Users can make bookings for available properties and manage their bookings.
- Reviews and ratings: Users can leave reviews and ratings for properties they have booked.
- User profiles: Users can view and update their profiles, including profile picture, contact information, and bio.
- Frontend: React TypeScript
- Backend: Django Rest Framework (Python)
- Documentation: Swagger
- Styling: Tailwind CSS
- Node.js (v14 or later)
- Python (v3.6 or later)
- PostgreSQL
- Clone the repository:
git clone <repository-url>
- Change to the backend directory:
cd restify/backend
- Create and activate a virtual environment:
python -m venv env
source env/bin/activate
- Install the required Python dependencies:
pip install -r packages.txt
- Apply database migrations:
python manage.py migrate
- Start the backend server:
python manage.py runserver
The backend server should now be running on http://localhost:8000
.
- Change to the frontend directory:
cd ../frontend
- Install the required Node.js dependencies:
npm install
- Start the frontend development server:
npm start
The frontend development server should now be running on http://localhost:3000
.
Documentation is available in P2/restify/documentation.yaml
and was created using Swagger. Alternatively, it is available at P2/restify/docs.pdf
.
-
Open your web browser and navigate to
http://localhost:3000
to access the Restify application. -
Register a new user account or log in with an existing account.
-
Explore the available property listings, search for properties, and make bookings.
-
Manage your bookings, leave reviews, and update your user profile as needed.
- University of Toronto - For the CSC309H1 (Programming on the Web) course.
- The open-source contributors of the used technologies.