
Service Tracking Dashboard with React, Redux, Firebase & Tailwind CSS
Project Overview
This project is a Car Service Dashboard React Application designed to help customer care service executives to manage car service records. It provides a streamlined way to create, view, update, delete, and search service records.
Using Firebase for the actual user authentication process, which includes user registration, login, and sign-out. On the other hand, Redux is being used for managing the authentication state within your application. This means that while Firebase handles the core authentication functionalities, Redux is responsible for storing the authenticated user's information and providing global access to this state across various components.
Technologies Used:
-
Frontend: React, React Router, Redux, React Hook Form, TailwindCSS.
-
Backend: Firebase Authentication, Firebase Firestore (Serverless, Cloud-Based Backend Database).
-
Hosting: Firebase Hosting.
Live App Build Process
Features and Functionalities
-
Managing user authentication state in the Car Service Dashboard using Redux Toolkit with an auth slice, ensuring session persistence via localStorage.
-
Handling CRUD operations and data management for car service records using Firebase Firestore, including adding, fetching, updating, deleting, and searching records.
-
Rendering the registration page for customer care executives, capturing email and password inputs, validating them, and using Firebase authentication via useAuth with routing handled by useNavigate.
-
Handling user authentication by allowing executives to log in via Google or email/password, using useAuth for authentication functions and useNavigate for routing upon success.
-
Creating a visually appealing landing page layout with Tailwind CSS to provide an engaging user introduction.
-
The Dashboard component provides authenticated users with the interface to manage car service records, leveraging Redux for user state and redirecting unauthenticated users to the login page.
-
firebaseConfig.js initializes and configures Firebase services for authentication and Firestore database interactions in the application.
-
AuthContext.jsx provides authentication context and methods using Firebase Authentication, integrated with Redux for managing user state.
-
ServiceRecords.js displays and manages authenticated user’s service records, allowing viewing, editing, and deleting of records from Firestore.
-
SearchServiceRecords.jsx enables searching, editing, and deleting of records based on a specific vehicle number.
-
AddService.jsx provides a form for adding and editing service records, interacting with Firestore for saving new or updated entries.
-
Using react-router-dom for routing, defining routes for public pages like Home, Login, and Signup, and protecting the Dashboard route with a ProtectedRoute higher-order component to ensure only authenticated users can access it.