{"id":25471245,"url":"https://github.com/younus-always/lostecho-site","last_synced_at":"2026-04-10T00:02:46.547Z","repository":{"id":273865880,"uuid":"910852481","full_name":"younus-always/LostEcho-Site","owner":"younus-always","description":"LostEcho is a dedicated platform designed to bridge the gap between individuals who have lost personal items and those who have found them. Our mission is to foster a sense of trust and community while making it easier to reunite lost belongings with their rightful owners.","archived":false,"fork":false,"pushed_at":"2025-02-05T13:29:35.000Z","size":8129,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-05T14:27:14.054Z","etag":null,"topics":["expressjs","firebase","flowbite","flowbite-react","mongodb","nodejs","reactjs","swiper-js","tailwindcss"],"latest_commit_sha":null,"homepage":"https://lost-echo.netlify.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/younus-always.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-01T16:24:19.000Z","updated_at":"2025-02-05T13:29:38.000Z","dependencies_parsed_at":"2025-01-23T12:40:59.075Z","dependency_job_id":null,"html_url":"https://github.com/younus-always/LostEcho-Site","commit_stats":null,"previous_names":["younus-always/lostecho-site"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/younus-always%2FLostEcho-Site","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/younus-always%2FLostEcho-Site/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/younus-always%2FLostEcho-Site/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/younus-always%2FLostEcho-Site/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/younus-always","download_url":"https://codeload.github.com/younus-always/LostEcho-Site/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239447755,"owners_count":19640358,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["expressjs","firebase","flowbite","flowbite-react","mongodb","nodejs","reactjs","swiper-js","tailwindcss"],"created_at":"2025-02-18T09:37:02.277Z","updated_at":"2025-12-30T19:04:26.368Z","avatar_url":"https://github.com/younus-always.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🔍 LostEcho – Find What Matters  \r\n\r\n## 📖 Overview  \r\n\r\n**LostEcho** is a dedicated platform designed to **bridge the gap** between individuals who have lost personal items and those who have found them. Our mission is to **foster a sense of trust and community** while making it easier to reunite lost belongings with their rightful owners.  \r\n\r\n---\r\n\r\n## 🌐 Live Demo  \r\n🚀 **Frontend:** [LostEcho Live](https://lost-echo.netlify.app)  \r\n🚀 **Backend:** [LostEcho Server](https://lost-echo-server.vercel.app)  \r\n\r\n---\r\n\r\n## 📌 Installation  \r\n\r\nFollow these steps to set up the project on your local machine:  \r\n\r\n### 🔹 Frontend Setup  \r\n\r\n1️⃣ **Clone the repository**  \r\n```sh\r\ngit clone https://github.com/yourusername/lostecho-frontend.git\r\ncd lostecho-frontend\r\n```\r\n\r\n2️⃣ **Install dependencies**  \r\n```sh\r\nnpm install\r\n```\r\n\r\n3️⃣ **Configure environment variables**  \r\nCreate a `.env.local` file in the frontend root directory and add:  \r\n```ini\r\nVITE_apiKey=your_firebase_api_key\r\nVITE_authDomain=your_firebase_auth_domain\r\nVITE_projectId=your_firebase_project_id\r\nVITE_storageBucket=your_firebase_storage_bucket\r\nVITE_messagingSenderId=your_firebase_messaging_sender_id\r\nVITE_appId=your_firebase_app_id\r\nVITE_URL=https://lost-echo-server.vercel.app\r\n```\r\n\r\n4️⃣ **Start the frontend server**  \r\n```sh\r\nnpm run dev\r\n```\r\nThen, open your browser and navigate to `http://localhost:5173/`  \r\n\r\n---\r\n\r\n### 🔹 Backend Setup  \r\n\r\n1️⃣ **Clone the repository**  \r\n```sh\r\ngit clone https://github.com/yourusername/lostecho-backend.git\r\ncd lostecho-backend\r\n```\r\n\r\n2️⃣ **Install dependencies**  \r\n```sh\r\nnpm install\r\n```\r\n\r\n3️⃣ **Generate a Secure JWT Secret Token**  \r\nBefore configuring the backend, generate a **secure JWT secret key** for authentication:  \r\n\r\n#### 🔐 **Generating a Secure JWT Secret Token**  \r\n\r\n1. Open your **Terminal/Command Prompt**  \r\n   - On **Windows**: Press `Win + R`, type `cmd`, and hit **Enter**  \r\n   - On **Mac/Linux**: Open the **Terminal**  \r\n\r\n2. Start a **Node.js session** by running:  \r\n   ```sh\r\n   node\r\n   ```\r\n\r\n3. Inside the Node.js shell, enter:  \r\n   ```js\r\n   require('crypto').randomBytes(64).toString('hex')\r\n   ```\r\n\r\n4. You will receive a randomly generated **64-byte token**, like this:  \r\n   ```plaintext\r\n   9a3091d3522423428d50e175a29ee4c1109561dcb6316534bea416b5c7c4faea\r\n   7f27ac89aa876dc64a802c7adc922364ca3eaf4c5491a4e7496cd54455c6307e\r\n   ```\r\n   **Copy and store this token securely.**\r\n\r\n5. Open the **`.env`** file in the backend and add:  \r\n   ```ini\r\n   DB_USER=your_database_user\r\n   DB_PASS=your_database_password\r\n   ACCESS_TOKEN=9a3091d3522423428d50e175a29ee4c1109561dcb6316534bea416b5c7c4faea7f27ac89aa876dc64a802c7adc922364ca3eaf4c5491a4e7496cd54455c6307e\r\n   ```\r\n\r\n⚠️ **Security Warning**  \r\n- Never expose your `.env` file in public repositories.  \r\n- Store your **JWT secret key** securely and change it periodically.  \r\n\r\n---\r\n\r\n4️⃣ **Start the backend server**  \r\n```sh\r\nnpm start\r\n```\r\nBy default, the backend runs on **`http://localhost:4000/`**  \r\n\r\n---\r\n\r\n## 🚀 Deploying the Backend on Vercel  \r\n\r\nTo deploy your **Express.js backend** to **Vercel**, follow these steps:  \r\n\r\n### ✅ **Step 1: Install Vercel CLI (If Not Installed)**  \r\nOpen your terminal and run:  \r\n```sh\r\nnpm install -g vercel\r\n```\r\n\r\n### ✅ **Step 2: Login to Vercel**  \r\nRun the following command and follow the authentication steps:  \r\n```sh\r\nvercel login\r\n```\r\n\r\n### ✅ **Step 3: Initialize Vercel in Your Backend Project**  \r\nInside your **backend directory**, run:  \r\n```sh\r\nvercel\r\n```\r\nThis will prompt you to set up your project. Select the following options:  \r\n- **Set up and deploy \"lostecho-server\"?** → `Yes`  \r\n- **Which scope do you want to deploy it to?** → *(Select your Vercel account)*  \r\n- **Link to existing project?** → `No` (if it's your first time)  \r\n- **What’s your project’s name?** → `lostecho-server` *(or any name you prefer)*  \r\n- **In which directory is your code located?** → `./` *(root directory)*  \r\n- **Which framework / build system?** → `Other`  \r\n- **Want to override the default settings?** → `No`  \r\n\r\n### ✅ **Step 4: Set Up Environment Variables**  \r\nAfter initialization, add your environment variables:  \r\n```sh\r\nvercel env add DB_USER your_database_user\r\nvercel env add DB_PASS your_database_password\r\nvercel env add ACCESS_TOKEN your_generated_secret_key\r\n```\r\n\r\nTo confirm the environment variables are added, run:  \r\n```sh\r\nvercel env ls\r\n```\r\n\r\n### ✅ **Step 5: Deploy the Server**  \r\nNow, deploy your server by running:  \r\n```sh\r\nvercel --prod\r\n```\r\nOnce deployment is complete, you will get a **live URL** (e.g., `https://lost-echo-server.vercel.app`).  \r\n\r\n### ✅ **Step 6: Update Frontend API URL**  \r\nModify your `.env.local` file in the frontend:  \r\n```ini\r\nVITE_URL=https://lost-echo-server.vercel.app\r\n```\r\nThen **restart the frontend** for changes to take effect:  \r\n```sh\r\nnpm run dev\r\n```\r\n\r\n---\r\n\r\n## 🛠 Troubleshooting  \r\n**❓ Firebase Errors:** Check API key configuration and Firebase setup.  \r\n**❓ TailwindCSS Not Working:** Ensure `postcss` and `autoprefixer` are installed.  \r\n**❓ Backend Deployment Failed?** Try running `vercel --force` or check `vercel logs`.  \r\n\r\n---\r\n\r\n## 👥 Contributors  \r\n💡 **Md. Younus Islam** – [GitHub Profile](https://github.com/younus-always)  \r\n🎉 Contributions are welcome! Feel free to fork the repo, open issues, and submit pull requests.  \r\n\r\n---\r\n\r\n## 🌟 Final Thoughts  \r\n\r\n🌍 **LostEcho is more than just a platform—it’s a lifeline for lost and found items!**  \r\n\r\nWe believe in the **power of community** and **helping each other**. Whether you've lost something valuable or found someone’s cherished belonging, **LostEcho** is here to reconnect owners with what matters most.  \r\n\r\n💙 Thank you for being a part of this journey. Let’s make the world a better place—one item at a time!  \r\n\r\n**Happy coding \u0026 happy reuniting!** 🚀😊  \r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyounus-always%2Flostecho-site","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyounus-always%2Flostecho-site","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyounus-always%2Flostecho-site/lists"}