Project

VanLife

A responsive van-rental application with Firebase-powered data and authentication, dynamic van pages, and a protected host dashboard.

ReactReact RouterJavaScriptViteCSSFirebase
VanLife project screenshot
01Overview

What I built

VanLife is a responsive van-rental web application built with React and React Router. The project was revisited and substantially improved by replacing its original mock API architecture with Firebase as the application's data source and authentication layer. It provides a customer-facing experience for browsing and filtering vans, viewing dynamic van details, and authenticating as a user, alongside a protected host dashboard for managing van listings and host-specific data. The project also includes improved loading, error, and empty states, as well as responsive UI refinements across the application.

02Features

What the application does

01

Browse van listings

02

Search and filter vans

03

Dynamic van detail pages

04

User registration and login

05

Firebase authentication

06

Protected host routes

07

Host dashboard

08

Host van management

09

Host-specific data

10

Loading, error, and empty states

11

Responsive interface

03Screenshots

See it in action

VanLife customer landing page
The customer-facing landing page for discovering and browsing available vans.
VanLife van details page
A dynamic van details page displaying vehicle information, pricing, and rental options.
VanLife host dashboard
The protected host dashboard for managing van listings and viewing host-specific information.
04Technical

How it was built

Frontend

React with React Router and CSS

Backend

Firebase Authentication and Cloud Firestore

Tools & Other

React Router loaders, actions, nested routes, dynamic routes, protected routes, Firestore security rules, and Vite

05Challenges

Challenges & solutions

01

Replacing the original MirageJS mock API with Firebase as the application's single source of truth.

02

Implementing Firebase Authentication and ensuring protected host routes are accessible only to authenticated users.

03

Structuring Firestore host data so users can manage their own van listings without accessing another user's data.

04

Configuring Firestore security rules to enforce user-specific access to host data.

05

Improving loading, error, and empty states to provide clearer feedback during asynchronous operations.

06

Refining the responsive layout and navigation across customer-facing and host pages.