This project is a full-stack web chat application built with React for the client and Node.js/Express for the server. It allows users to register, log in, join chat rooms, and communicate with others.
- User Authentication: Secure user registration and login.
- Chat Rooms: Create and join different chat rooms.
- Real-time Chat: Send and receive messages instantly.
- Responsive UI: Designed to work on various devices.
- Profile Management: View and edit user profile information.
- React: A powerful library for building user interfaces.
- React Router: for handling routing and navigation within the application.
- Supabase Client: To connect to the Supabase service for authentication.
- Axios: For making HTTP requests to the server.
- CSS: For styling components.
- Node.js: A JavaScript runtime for the server.
- Express: A web framework for building APIs.
- Supabase Client: To interact with the Supabase database and services.
- CORS: For managing cross-origin resource sharing.
Before you begin, ensure you have the following software installed:
You will also need a Supabase project for database management and authentication.
-
Clone the project:
git clone https://github.com/MrRMansd01/spooder_web.git cd spooder_web -
Install server dependencies:
cd server npm install -
Install client dependencies:
cd ../client npm install -
Configure Supabase:
- Create a
.envfile in both theserverandclientdirectories. - Add your Supabase project credentials to these files:
SUPABASE_URL=your_supabase_url SUPABASE_KEY=your_supabase_anon_key - You will need to use these variables in the
supabaseClient.jsfiles in both the client and server.
- Create a
To run the project, you need to run the server and client simultaneously.
-
Run the server:
- In a terminal, navigate to the
serverdirectory and run the following command:
npm start
The server will run on port
3001. - In a terminal, navigate to the
-
Run the client:
- In another terminal, navigate to the
clientdirectory and run the following command:
npm start
The React application will run on port
3000and open in your browser. - In another terminal, navigate to the
spooder_web/
├── client/ # Frontend code (React)
│ ├── public/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── App.jsx
│ │ └── index.js
│ └── package.json
│
├── server/ # Backend code (Node.js/Express)
│ ├── routes/ # API routes
│ ├── server.js # Main server file
│ └── package.json
│
└── README.md