Lingua Link is a real-time chat application that allows users to create and join chat rooms, send messages, and manage their profiles. It is built using React, Firebase, and other modern web technologies.
Live Demo: Lingua Link
Lingua Link follows a client-server architecture, where the client-side is built using React and the server-side is managed by Firebase services. Here's an overview of the architecture:
-
Client-side:
- Built using React, a popular JavaScript library for building user interfaces.
- Utilizes React Router for client-side routing.
- Uses Firebase Authentication for user authentication.
- Manages state using React's built-in useState and useEffect hooks, along with Firebase Firestore for real-time data synchronization.
- Utilizes Firebase Storage for storing profile images.
- Employs Lucide icons for the user interface's iconography.
- Uses React Toastify for displaying notifications to users.
-
Server-side:
- Managed by Firebase services, including Firestore for real-time database functionality and Authentication for user authentication.
- Uses Firebase Storage for storing profile images.
-
Frontend:
- React
- React Router DOM
- Lucide React (for icons)
- React Toastify
- Tailwind CSS (for styling)
-
Backend:
- Firebase Firestore (NoSQL database)
- Firebase Authentication
- Firebase Storage
-
Development Tools:
- Vite (build tool)
- ESLint (for code linting)
- PostCSS (for CSS processing)
- Tailwind CSS (utility-first CSS framework)
Before getting started, ensure you have the following installed on your machine:
- Node.js (version 14 or above)
- npm or yarn package manager
- Firebase account and project setup
-
Clone the repository to your local machine:
git clone https://github.com/Saadaan-Hassan/Lingua-Link.git
-
Navigate to the project directory:
cd lingua-link
-
Install project dependencies:
npm install
or
yarn install
-
Create a Firebase project and set up Firebase Authentication, Firestore, and Storage services.
-
Obtain your Firebase configuration settings.
-
Create a
.env
file in the root directory of the project. -
Add your Firebase configuration settings to the
.env
file:REACT_APP_FIREBASE_API_KEY=your-api-key REACT_APP_FIREBASE_AUTH_DOMAIN=your-auth-domain REACT_APP_FIREBASE_PROJECT_ID=your-project-id REACT_APP_FIREBASE_STORAGE_BUCKET=your-storage-bucket REACT_APP_FIREBASE_MESSAGING_SENDER_ID=your-messaging-sender-id REACT_APP_FIREBASE_APP_ID=your-app-id
Once you've completed the setup and configuration, you can run the application locally:
npm run dev
or
yarn dev
This command starts the development server, and you can access the application at http://localhost:5173
.
The project structure follows a typical React application structure, with the main components being:
- src/
- components/: Contains React components used throughout the application.
- context/: Contains React context providers for managing application state.
- firebase/: Firebase configuration and initialization files.
- styles/: Contains global styles and Tailwind CSS configuration.
This project was created as part of Saadaan's portfolio to demonstrate skills in React development, Firebase integration, and modern web development practices. Special thanks to the open-source community for providing valuable tools and resources used in this project.