Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
f28537e
Re-add roomController.js with full DB read/write logic
Jun 23, 2025
a5ee638
Merge pull request #20 from kalviumcommunity/concept-db-readwrite
yep-yogesh Jun 23, 2025
aa0d3eb
Merge pull request #21 from kalviumcommunity/concept-react-components
yep-yogesh Jun 23, 2025
67b868e
Added game rules file upload (.txt) Concept - File Upload Functionality
Jun 23, 2025
131dfda
Merge pull request #22 from kalviumcommunity/concept-file-upload
yep-yogesh Jun 23, 2025
745b535
Added email/password based authentication using Firebase
Jun 23, 2025
ea9f23d
Removed Firebase-adminsdk.json for security reasons
Jun 23, 2025
04bc5a9
Merge pull request #23 from kalviumcommunity/concept-auth-password
yep-yogesh Jun 23, 2025
7366c32
Removed files temporarily to add them with the concept Authentication…
Jun 23, 2025
bde2ac5
Added Google Authentication with Firebase (3rd party auth)
Jun 23, 2025
f805f99
Merge pull request #24 from kalviumcommunity/concept-auth-google
yep-yogesh Jun 23, 2025
b753ec2
Removed files temporarily to add them with the concept Update and Del…
Jun 23, 2025
84f2564
Merge branch 'main' of https://github.com/kalviumcommunity/S74_Yogesh…
Jun 23, 2025
1a354d0
Implemented update and delete functionality in CreateRoom
Jun 23, 2025
0a35cbc
Merge pull request #25 from kalviumcommunity/concept-update-delete
yep-yogesh Jun 23, 2025
7ec969f
Removed files temporarily to add them with the concept Using JWT
Jun 23, 2025
cf1256c
Using Firebase JWT tokens in application
Jun 23, 2025
fd48107
Merge pull request #26 from kalviumcommunity/concept-jwt-token-firebase
yep-yogesh Jun 23, 2025
73db0c8
Removed files temporarily to add them with the concept git checkout -…
Jun 23, 2025
18ef307
Added 6 unit tests using Vitest & Testing Library
Jun 23, 2025
78276a8
Merge pull request #27 from kalviumcommunity/concept-testing
yep-yogesh Jun 24, 2025
bf7d181
Added Dockerfile to containerize app
Jun 24, 2025
4e6ad44
Merge pull request #28 from kalviumcommunity/concept-dockerfile
yep-yogesh Jun 24, 2025
ab1f46f
Integrated LangChain.js for AI-powered hint generation
Jun 24, 2025
0dcccef
Merge pull request #29 from kalviumcommunity/concept-langchain
yep-yogesh Jun 24, 2025
0f54bd7
Added payment Link for Payment Gateway integration in AboutDev page
Jun 24, 2025
5f6ed3d
Merge pull request #30 from kalviumcommunity/concept-payment-gateway
yep-yogesh Jun 24, 2025
afbfef9
Added cronjob to auto-delete expired rooms every 20 mins
Jun 24, 2025
297faa3
Merge pull request #31 from kalviumcommunity/concept-cronjob
yep-yogesh Jun 24, 2025
23ee372
Added WebSocket-based real-time multiplayer communication
Jun 24, 2025
0b6991d
added profile page under development (#1)
varshakannan-hub Jun 24, 2025
85ecaf5
added how to play steps page (#2)
reshma-devraj Jun 24, 2025
9d5b1d1
Merge pull request #32 from kalviumcommunity/concept-websocket-realtime
yep-yogesh Jun 24, 2025
b29755f
Merge pull request #33 from varsha479/add-profile-page
yep-yogesh Jun 24, 2025
24c43f7
added typing effect to about dev title (#3)
Ahamed1846 Jun 24, 2025
fc91e4b
Merge pull request #35 from kalviumcommunity/add-typing-effect
yep-yogesh Jun 24, 2025
c40d914
Merge pull request #34 from reshma-devraj/how-to-page
yep-yogesh Jun 24, 2025
8c5bb40
added remaining frontend pages (GameRoom, LandingPage, JoinRoom, etc.)
Jun 24, 2025
34be7d9
Merge pull request #36 from kalviumcommunity/frontend-pages
yep-yogesh Jun 24, 2025
3c7640a
Pushed Reamaining Backend files
Jun 24, 2025
777e0a8
Added Backend Utils
Jun 24, 2025
17fca44
Merge pull request #37 from kalviumcommunity/backend
yep-yogesh Jun 24, 2025
080edc4
Merge pull request #38 from kalviumcommunity/backend-utils
yep-yogesh Jun 24, 2025
ec3a93b
refactor: used env-based firebase admin config
Jun 25, 2025
ff500d2
Merge branch 'main' of https://github.com/kalviumcommunity/S74_Yogesh…
Jun 25, 2025
4cc7d21
added PUT endpoint to update room settings (rounds, duration, rules)
Jun 26, 2025
3ba77e5
Merge pull request #39 from kalviumcommunity/concept-put-api
yep-yogesh Jun 26, 2025
7426f94
added Bruno API templates for create, join, update room endpoints
Jun 28, 2025
bd83de2
Merge pull request #40 from kalviumcommunity/concept-bruno-template
yep-yogesh Jun 28, 2025
95b0dcf
added rate limiting to room creation and login endpoints
Jun 28, 2025
c68daac
Merge pull request #41 from kalviumcommunity/concept-rate-limiting
yep-yogesh Jun 28, 2025
bb1c814
Set up Firebase Admin SDK using .env
Jun 30, 2025
88b7889
firebase-env-setup
yep-yogesh Jun 30, 2025
03e5169
Fix: Add Vite to devDependencies for Netlify build
Jun 30, 2025
3449762
Add netlify.toml to fix Vite build
Jun 30, 2025
2602981
Fix: Add Netlify redirect for React Router
Jun 30, 2025
ede573d
Fix: Add production CORS for Netlify
Jun 30, 2025
cde05d7
Updated README.md with Deployment links
yep-yogesh Jun 30, 2025
241d74d
Fix: Added Icon for Deployed Link
Jul 1, 2025
fb1a421
Fix: Added Icon for Deployed Link
Jul 1, 2025
181b276
Fix: Fixed Api for Room Creation
Jul 4, 2025
eaddd94
Fix: Fixed Api for Socket
Jul 4, 2025
62da0ec
Fix: Fixed Https for Socket
Jul 4, 2025
d86751a
Added redirect to home
yep-yogesh Sep 9, 2025
e95e0a5
Updated Readme with Animated GIF
yep-yogesh Sep 28, 2025
bccf3c7
Merge pull request #47 from kalviumcommunity/guessync-readme
yep-yogesh Sep 28, 2025
d807486
changed gif size
yep-yogesh Sep 28, 2025
7fc0c81
enhancement readme
yep-yogesh Sep 28, 2025
177e548
updated readme
yep-yogesh Sep 28, 2025
76c9ba4
Fixed Responsiveness for every page
yep-yogesh Sep 29, 2025
3be304f
Merge pull request #48 from kalviumcommunity/fix-responiveness
yep-yogesh Sep 29, 2025
743f587
Added subtle microanimations
yep-yogesh Sep 29, 2025
fd40b13
Merge pull request #49 from kalviumcommunity/ui-howtoplay
yep-yogesh Sep 29, 2025
4d09f3b
Enhanced UI in profile page
yep-yogesh Sep 29, 2025
4952128
Merge pull request #50 from kalviumcommunity/ui-profile
yep-yogesh Sep 29, 2025
d818fae
Added MIT License to the project
yep-yogesh Sep 29, 2025
9b80f64
Added .env example to setup
yep-yogesh Sep 29, 2025
7dc5c99
Merge pull request #51 from yep-yogesh/env-sample
yep-yogesh Sep 29, 2025
e58e6e1
Updated README with local development steps
yep-yogesh Sep 30, 2025
03246e3
Fix: Enhance JoinRoom Component with Better Error Handling and Perfor…
imaheshno1 Oct 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
# Client ignores
# ------------------
client/node_modules/
client/config/firebase.js
client/dist/
client/.vite/
client/.env
Expand Down
36 changes: 36 additions & 0 deletions Bruno/Room APIs/Create Room.bru
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
meta {
name: Create Room
type: http
seq: 1
}

post {
url: https://guessync.onrender.com/api/room/create
body: json
auth: inherit
}

headers {
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjNiZjA1MzkxMzk2OTEzYTc4ZWM4MGY0MjcwMzM4NjM2NDA2MTBhZGMiLCJ0eXAiOiJKV1QifQ.eyJuYW1lIjoiWW9nZXNoIiwiaXNzIjoiaHR0cHM6Ly9zZWN1cmV0b2tlbi5nb29nbGUuY29tL25vdC1ndWVzc3luYyIsImF1ZCI6Im5vdC1ndWVzc3luYyIsImF1dGhfdGltZSI6MTc1MDU5NDQ1MywidXNlcl9pZCI6InBwYmJqd21ueFBRTU90NXl0amh4aEx5eHA3TjIiLCJzdWIiOiJwcGJiandtbnhQUU1PdDV5dGpoeGhMeXhwN04yIiwiaWF0IjoxNzUwNTk0NDU1LCJleHAiOjE3NTA1OTgwNTUsImVtYWlsIjoidGVzdDFAdGVzdC5jb20iLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImZpcmViYXNlIjp7ImlkZW50aXRpZXMiOnsiZW1haWwiOlsidGVzdDFAdGVzdC5jb20iXX0sInNpZ25faW5fcHJvdmlkZXIiOiJwYXNzd29yZCJ9fQ.aw15qoR4P8ZcoClnvbP_fUitg32gRWCSJs6cWyHCo3qjZyCNysmk8ZDU_e03nFDWVMY6oClm_-sEtq_OZCA7fPxrFLNBI5akkRfaooY1wDeg5YciFi6MtyN_1aA4zWLyeouO0As3KAYE5JyzAxWcYbTG9okFII19QyvfGL84MkcMzZuys9S9XKU5SOfYwFDBj2X8NZD5K1U97KWAf1oznKDuMqu8mDCWu7aGus4VBhXj_9HtiZ8xOuD5PKjWzBzJUSwWg2_Svb-_hNXpf37h1Co2rm3yVTm3TMgeU8n7I22YRAF_oORbxRsnSz6GmhMcJm_kvbqyYNbUjlq15y4X1w
Content-Type: application/json
}

body:json {
{
"uid": "user_123",
"name": "Yogesh",
"avatar": "https://i.imgur.com/avatar.png",
"useSpotify": true,
"playlistId": "37i9dQZF1DXcBWIGoYBM5M",
"code": "123456",
"rounds": 5,
"duration": 15,
"languages": ["Tamil", "Hindi"],
"rules": {
"showHints": true,
"enableChat": true
}
"language": "tamil"
}

}
26 changes: 26 additions & 0 deletions Bruno/Room APIs/Join Room.bru
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
meta {
name: Join Room
type: http
seq: 2
}

post {
url: https://guessync.onrender.com/api/room/join
body: json
auth: inherit
}

headers {
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjNiZjA1MzkxMzk2OTEzYTc4ZWM4MGY0MjcwMzM4NjM2NDA2MTBhZGMiLCJ0eXAiOiJKV1QifQ.eyJuYW1lIjoiWW9nZXNoIiwiaXNzIjoiaHR0cHM6Ly9zZWN1cmV0b2tlbi5nb29nbGUuY29tL25vdC1ndWVzc3luYyIsImF1ZCI6Im5vdC1ndWVzc3luYyIsImF1dGhfdGltZSI6MTc1MDU5NDQ1MywidXNlcl9pZCI6InBwYmJqd21ueFBRTU90NXl0amh4aEx5eHA3TjIiLCJzdWIiOiJwcGJiandtbnhQUU1PdDV5dGpoeGhMeXhwN04yIiwiaWF0IjoxNzUwNTk0NDU1LCJleHAiOjE3NTA1OTgwNTUsImVtYWlsIjoidGVzdDFAdGVzdC5jb20iLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImZpcmViYXNlIjp7ImlkZW50aXRpZXMiOnsiZW1haWwiOlsidGVzdDFAdGVzdC5jb20iXX0sInNpZ25faW5fcHJvdmlkZXIiOiJwYXNzd29yZCJ9fQ.aw15qoR4P8ZcoClnvbP_fUitg32gRWCSJs6cWyHCo3qjZyCNysmk8ZDU_e03nFDWVMY6oClm_-sEtq_OZCA7fPxrFLNBI5akkRfaooY1wDeg5YciFi6MtyN_1aA4zWLyeouO0As3KAYE5JyzAxWcYbTG9okFII19QyvfGL84MkcMzZuys9S9XKU5SOfYwFDBj2X8NZD5K1U97KWAf1oznKDuMqu8mDCWu7aGus4VBhXj_9HtiZ8xOuD5PKjWzBzJUSwWg2_Svb-_hNXpf37h1Co2rm3yVTm3TMgeU8n7I22YRAF_oORbxRsnSz6GmhMcJm_kvbqyYNbUjlq15y4X1w
Content-Type: application/json
}

body:json {
{
"uid": "user_456",
"name": "Ryan",
"avatar": "https://i.imgur.com/avatar2.png",
"code": "123456"
}

}
3 changes: 3 additions & 0 deletions Bruno/Room APIs/folder.bru
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
meta {
name: Room APIs
}
16 changes: 16 additions & 0 deletions Bruno/Song GET/Song-b-index.bru
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
meta {
name: Song-b-index
type: http
seq: 1
}

get {
url: https://guessync.onrender.com/api/song/by-index?roomCode=123486&index=0
body: none
auth: inherit
}

params:query {
roomCode: 123486
index: 0
}
3 changes: 3 additions & 0 deletions Bruno/Song GET/folder.bru
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
meta {
name: Song GET
}
15 changes: 15 additions & 0 deletions Bruno/User GET/User Authentication UID.bru
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
meta {
name: User Authentication UID
type: http
seq: 1
}

get {
url: https://guessync.onrender.com/api/auth/me
body: none
auth: inherit
}

headers {
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjNiZjA1MzkxMzk2OTEzYTc4ZWM4MGY0MjcwMzM4NjM2NDA2MTBhZGMiLCJ0eXAiOiJKV1QifQ.eyJuYW1lIjoiWW9nZXNoIiwiaXNzIjoiaHR0cHM6Ly9zZWN1cmV0b2tlbi5nb29nbGUuY29tL25vdC1ndWVzc3luYyIsImF1ZCI6Im5vdC1ndWVzc3luYyIsImF1dGhfdGltZSI6MTc1MDU5NDQ1MywidXNlcl9pZCI6InBwYmJqd21ueFBRTU90NXl0amh4aEx5eHA3TjIiLCJzdWIiOiJwcGJiandtbnhQUU1PdDV5dGpoeGhMeXhwN04yIiwiaWF0IjoxNzUwNTk0NDU1LCJleHAiOjE3NTA1OTgwNTUsImVtYWlsIjoidGVzdDFAdGVzdC5jb20iLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImZpcmViYXNlIjp7ImlkZW50aXRpZXMiOnsiZW1haWwiOlsidGVzdDFAdGVzdC5jb20iXX0sInNpZ25faW5fcHJvdmlkZXIiOiJwYXNzd29yZCJ9fQ.aw15qoR4P8ZcoClnvbP_fUitg32gRWCSJs6cWyHCo3qjZyCNysmk8ZDU_e03nFDWVMY6oClm_-sEtq_OZCA7fPxrFLNBI5akkRfaooY1wDeg5YciFi6MtyN_1aA4zWLyeouO0As3KAYE5JyzAxWcYbTG9okFII19QyvfGL84MkcMzZuys9S9XKU5SOfYwFDBj2X8NZD5K1U97KWAf1oznKDuMqu8mDCWu7aGus4VBhXj_9HtiZ8xOuD5PKjWzBzJUSwWg2_Svb-_hNXpf37h1Co2rm3yVTm3TMgeU8n7I22YRAF_oORbxRsnSz6GmhMcJm_kvbqyYNbUjlq15y4X1w
}
3 changes: 3 additions & 0 deletions Bruno/User GET/folder.bru
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
meta {
name: User GET
}
9 changes: 9 additions & 0 deletions Bruno/bruno.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"version": "1",
"name": "Bruno",
"type": "collection",
"ignore": [
"node_modules",
".git"
]
}
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2025 Yogesh

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
212 changes: 212 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
<p align="center">
<img src="./client/src/assets/guessync.gif" alt="Guessync Demo" width="1000" />
</p>

<h1 align="center">
<a href="https://guessync.netlify.app/">
<img src="./client/public/wordmark.png" alt="Guessync" height="80" />
</a>
</h1>

<p align="center">
<b>A full-stack real-time multiplayer music guessing game</b> <br/>
Compete with friends, guess songs, and use AI-powered hints!
</p>

---

## Features

- **Spotify playlist integration** for song sourcing
- **YouTube audio streaming** for playback
- **AI-powered hints** using OpenAI
- **Real-time guessing & chat** via Socket.IO
- **Typo-tolerant matching** with Fuse.js
- **Secure authentication** (Firebase)
- **Modern frontend** (React + Vite + Tailwind)
- **Leaderboard scoring** in real time
- **MongoDB Atlas** for scalable data storage

---

## Tech Stack

### Frontend
- React + Vite
- Tailwind CSS
- Firebase Authentication
- Socket.IO Client

### Backend
- Node.js + Express.js
- MongoDB (Mongoose)
- Firebase Admin SDK (auth verification)
- Socket.IO Server
- Spotify API + YouTube API
- Gemini API (AI hint generation)
- Bruno (API testing)

---

## Deployment

- **Frontend:** [Guessync on Netlify](https://guessync.netlify.app/)
- **Backend:** [Guessync on Render](https://guessync.onrender.com/)
- **Database:** MongoDB Atlas

---

## Local Development (Step-by-step)

Follow these steps to run both backend (Express) and frontend (Vite + React) locally.

- Backend runs on: http://localhost:5000
- Frontend runs on: http://localhost:5173

### 1) Prerequisites
- Node.js 18+ and npm (or yarn/pnpm)
- A MongoDB database (Atlas or local)
- Firebase project (for Auth)
- Optional, but recommended:
- Spotify API credentials (song sourcing)
- YouTube API key (audio)
- Gemini/OpenAI key (AI hints)

### 2) Clone and enter the project
```bash
git clone <your-fork-or-repo-url>
cd Guessync
```

### 3) Configure environment files

Use the provided examples to create your .env files.

- macOS/Linux:
```bash
cp server/.env.example server/.env
cp client/.env.example client/.env
```

- Windows PowerShell:
```powershell
Copy-Item server/.env.example server/.env
Copy-Item client/.env.example client/.env
```

Now fill the values:

Server (.env):
- MONGO_URI: Your MongoDB connection string (Atlas or local, e.g. mongodb://127.0.0.1:27017/guessync)
- PORT: 5000 (default)
- SPOTIFY_CLIENT_ID / SPOTIFY_CLIENT_SECRET: From Spotify Developer Dashboard
- YOUTUBE_API_KEY: From Google Cloud Console
- GEMINI_API_KEY: From Google AI Studio (optional if you won’t use AI hints)
- Firebase service account:
- In Firebase console: Project settings → Service accounts → Generate new private key
- Paste fields into .env. Important: keep FIREBASE_PRIVATE_KEY wrapped in quotes and with escaped newlines:
FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...your key...\n-----END PRIVATE KEY-----\n"

Client (.env):
- VITE_FIREBASE_*: From Firebase project settings → General → Your apps (Web app)

Tip: Never commit .env. It’s ignored by .gitignore already.

### 4) Install dependencies

From project root, install in both apps:

```bash
cd server && npm install
cd ../client && npm install
```

### 5) Run backend and frontend

Open two terminals:

- Terminal A (Backend):
```bash
cd server
npm run dev
# Expect: "Server running on port 5000"
```

- Terminal B (Frontend):
```bash
cd client
npm run dev
# Open the shown local URL, usually http://localhost:5173
```

### 6) Log in and try the app
- Use Email/Password or Google via Firebase
- Pick an avatar
- Create a room or join with a code
- Open a second browser window to simulate a friend joining

---

## Common Issues & Troubleshooting

- CORS error in browser console:
- The backend only allows these origins by default:
- http://localhost:5173
- https://guessync.netlify.app
- If your dev URL differs (e.g. 127.0.0.1:5173), add it in server/server.js (allowedOrigins array).

- Rate limiting (HTTP 429):
- /api/room/create and /api/auth/login are limited to 5 requests/min (see server/server.js with express-rate-limit).
- Wait a minute or increase limits for local dev only.

- Firebase “invalid credential” or “private key” errors:
- Ensure FIREBASE_PRIVATE_KEY uses escaped newlines and is wrapped in quotes:
"-----BEGIN PRIVATE KEY-----\n...lines...\n-----END PRIVATE KEY-----\n"
- Make sure Client VITE_FIREBASE_* matches the same Firebase project.

- MongoDB connection errors:
- For Atlas, whitelist your IP or set “Allow access from anywhere”.
- Verify MONGO_URI is correct and the cluster is running.

- Vite port already in use:
- Run a different port:
npm run dev -- --port 5174

- Socket connection issues:
- Backend must be running on http://localhost:5000.
- Ensure your frontend’s socket base URL matches backend.

---

## Scripts

Backend (server/package.json):
- npm run dev → Nodemon on server.js

Frontend (client/package.json):
- npm run dev → Vite dev server
- npm run build → Production build

---

## Project Structure (high-level)

- server/ (Express, Socket.IO, MongoDB, Firebase Admin, routes, cron)
- server.js (entry)
- routes/, sockets/, config/, cronJobs/
- .env.example
- client/ (React + Vite, Tailwind, Firebase Auth, Socket.IO client)
- src/pages, src/components, src/assets
- vite.config.js, tailwind config
- .env.example

---

## Contributing

1) Fork the repo
2) Create a feature branch
3) Commit with clear messages
4) Open a PR with a brief description and screenshots if relevant

Thanks for contributing!
8 changes: 8 additions & 0 deletions client/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Firebase (for Vite + Frontend)
VITE_FIREBASE_API_KEY="your_firebase_api_key"
VITE_FIREBASE_AUTH_DOMAIN="your_project.firebaseapp.com"
VITE_FIREBASE_PROJECT_ID="your_firebase_project_id"
VITE_FIREBASE_STORAGE_BUCKET="your_project.firebasestorage.app"
VITE_FIREBASE_MESSAGING_SENDER_ID="your_firebase_messaging_sender_id"
VITE_FIREBASE_APP_ID="your_firebase_app_id"

2 changes: 1 addition & 1 deletion client/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<link rel="icon" type="image/svg+xml" href="/logo.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Guessync</title>

Expand Down
Loading