{"id":29068554,"url":"https://github.com/tanushreesarkar/uplifters-net","last_synced_at":"2026-01-20T16:28:29.369Z","repository":{"id":300909852,"uuid":"1007563441","full_name":"TanushreeSarkar/uplifters-net","owner":"TanushreeSarkar","description":" Uplifters.Net is a web-based donation and volunteer management platform designed to connect donors with causes related to clothing, food, and education support. The platform allows users to explore donation categories, view real-time impact through interactive cards and counters, and engage with visual testimonials. Used HTML, CSS, and Javascript.","archived":false,"fork":false,"pushed_at":"2025-11-15T15:01:27.000Z","size":11083,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-15T17:13:56.114Z","etag":null,"topics":["css","html","javascript","nodejs","reactjs","sql"],"latest_commit_sha":null,"homepage":"https://uplifters-net.vercel.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/TanushreeSarkar.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,"zenodo":null}},"created_at":"2025-06-24T07:31:18.000Z","updated_at":"2025-11-15T15:14:39.000Z","dependencies_parsed_at":"2025-06-24T08:37:58.428Z","dependency_job_id":null,"html_url":"https://github.com/TanushreeSarkar/uplifters-net","commit_stats":null,"previous_names":["tanushreesarkar/uplifters-net"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TanushreeSarkar/uplifters-net","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TanushreeSarkar%2Fuplifters-net","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TanushreeSarkar%2Fuplifters-net/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TanushreeSarkar%2Fuplifters-net/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TanushreeSarkar%2Fuplifters-net/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TanushreeSarkar","download_url":"https://codeload.github.com/TanushreeSarkar/uplifters-net/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TanushreeSarkar%2Fuplifters-net/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28607114,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T16:10:39.856Z","status":"ssl_error","status_checked_at":"2026-01-20T16:10:39.493Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["css","html","javascript","nodejs","reactjs","sql"],"created_at":"2025-06-27T11:07:43.531Z","updated_at":"2026-01-20T16:28:29.363Z","avatar_url":"https://github.com/TanushreeSarkar.png","language":"JavaScript","readme":"# 🌍 Uplifters.Net – Joining Hearts \u0026 Hands with Technology\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"img/don/salary.jpg\" alt=\"Uplifters.Net Logo\" width=\"150\"\u003e\u003cbr\u003e\u003cbr\u003e\n\n  **A full-stack charity platform connecting acts of kindness to real human needs.**  \n  \n  Built with ❤️ using HTML, CSS, JavaScript, Node.js, Express, MongoDB, Cloudinary, and Gmail SMTP.  \n  Deployed on **Render** (Backend) \u0026 **Vercel** (Frontend).\n\n  \u003cbr\u003e\u003cbr\u003e\n  \n  ![GitHub stars](https://img.shields.io/github/stars/TanushreeSarkar/uplifters-net?style=social)\n  ![GitHub forks](https://img.shields.io/github/forks/TanushreeSarkar/uplifters-net?style=social)\n  ![GitHub issues](https://img.shields.io/github/issues/TanushreeSarkar/uplifters-net)\n  ![Status](https://img.shields.io/badge/Status-Live-brightgreen?style=flat-square)\n\u003c/div\u003e\n\n---\n\n## ✨ Key Features\n\n- 🎨 **Modern \u0026 Responsive Design** – Beautiful UI that works seamlessly across all devices\n- 🌗 **Light/Dark Mode** – Toggle between themes for comfortable viewing\n- 🔥 **Full-Stack Integration** – Complete frontend and backend with cloud services\n- ☁️ **Cloud Storage** – Cloudinary-powered image gallery and uploads\n- 📊 **Dynamic Metrics Dashboard** – Real-time donation impact tracking\n- ✉️ **Smart Contact System** – Gmail SMTP integration with automated responses\n- 🔒 **Secure Authentication** – JWT-based auth with role management (Admin/User)\n- 🎯 **Campaign Management** – Track and display active donation campaigns\n- ⭐ **User Testimonials** – Community feedback with admin moderation\n\n---\n\n## 🖼️ Preview\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"img/light_home\" alt=\"Homepage Preview\" width=\"700\"\u003e\u003cbr\u003e\n  \u003cem\u003eClean, intuitive, and emotionally engaging interface\u003c/em\u003e\n\u003c/div\u003e\n\n---\n\n## 🛠️ Tech Stack\n\n| Layer       | Technologies |\n|-------------|--------------|\n| **Frontend**    | HTML5, CSS3, JavaScript, Bootstrap, Swiper.js, Lightbox |\n| **Backend**     | Node.js, Express.js, Mongoose, JWT, Multer, Nodemailer |\n| **Database**    | MongoDB Atlas |\n| **Storage**     | Cloudinary |\n| **Email**       | Gmail SMTP (App Password) |\n| **Deployment**  | Render (Backend), Vercel (Frontend) |\n\n---\n\n## 📁 Project Structure\n\n```\nuplifters-net/\n│\n├── frontend/\n│   ├── index.html\n│   ├── css/\n│   │   └── styles.css\n│   ├── js/\n│   │   └── main.js\n│   └── img/\n│       └── don/\n│\n├── backend/\n│   ├── src/\n│   │   ├── app.js\n│   │   ├── server.js\n│   │   ├── routes/\n│   │   │   ├── auth.js\n│   │   │   ├── gallery.js\n│   │   │   ├── contact.js\n│   │   │   ├── testimonials.js\n│   │   │   └── metrics.js\n│   │   ├── controllers/\n│   │   ├── models/\n│   │   ├── middleware/\n│   │   │   └── auth.js\n│   │   ├── services/\n│   │   └── utils/\n│   ├── .env.example\n│   ├── package.json\n│   └── package-lock.json\n```\n\n---\n\n## 🔧 Core Backend Modules\n\n### 🔐 Authentication Module\n- JWT access and refresh token system\n- Secure password hashing with bcrypt\n- Token rotation and expiry management\n- Role-based access control (Admin/User)\n\n### 🖼️ Gallery Module\n- Image upload via Multer middleware\n- Cloud storage integration with Cloudinary\n- Admin moderation and approval system\n- Public gallery API for frontend display\n\n### 💬 Contact Module\n- Form submissions stored in MongoDB\n- Automated email notifications via Gmail SMTP\n- Input validation and sanitization\n- Admin dashboard for message management\n\n### ⭐ Testimonials Module\n- User-submitted feedback collection\n- Admin approval workflow\n- Frontend carousel integration with Swiper.js\n- Rating and comment system\n\n### 📊 Metrics \u0026 Analytics\n- Real-time donation impact statistics\n- Daily auto-updated counters\n- Campaign performance tracking\n- Public API for frontend display\n\n### 📁 Campaign Management\n- Create and manage donation campaigns\n- Category-based organization\n- Active/inactive status tracking\n- API endpoints for campaign data\n\n---\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- Node.js (v14 or higher)\n- MongoDB Atlas account\n- Cloudinary account\n- Gmail account with App Password\n\n### Installation\n\n**1. Clone the Repository**\n\n```bash\ngit clone https://github.com/TanushreeSarkar/uplifters-net.git\ncd uplifters-net\n```\n\n**2. Backend Setup**\n\n```bash\ncd backend\nnpm install\ncp .env.example .env\n```\n\n**3. Configure Environment Variables**\n\nEdit the `.env` file with your credentials:\n\n```env\nPORT=5000\nMONGODB_URI=your_mongodb_connection_string\nJWT_SECRET=your_jwt_secret\nJWT_REFRESH_SECRET=your_refresh_secret\nCLOUDINARY_CLOUD_NAME=your_cloudinary_name\nCLOUDINARY_API_KEY=your_cloudinary_key\nCLOUDINARY_API_SECRET=your_cloudinary_secret\nEMAIL_USER=your_gmail@gmail.com\nEMAIL_PASS=your_gmail_app_password\nFRONTEND_URL=http://localhost:3000\n```\n\n**4. Start Development Server**\n\n```bash\nnpm run dev\n```\n\nBackend runs on `http://localhost:5000`\n\n**5. Frontend Setup**\n\nSimply open `frontend/index.html` in a browser or use a live server:\n\n```bash\ncd frontend\nnpx live-server\n```\n\n---\n\n## 🌐 Deployment\n\n### Backend Deployment on Render\n\n1. Create a new Web Service on [Render](https://render.com)\n2. Connect your GitHub repository\n3. Configure build settings:\n   - **Build Command:** `npm install`\n   - **Start Command:** `npm start`\n4. Add environment variables from `.env`\n5. Deploy and note your backend URL\n6. Test health endpoint: `https://your-app.onrender.com/health`\n\n### Frontend Deployment on Vercel\n\n1. Import project on [Vercel](https://vercel.com)\n2. Update API base URL in `frontend/index.html`:\n\n```html\n\u003cbody data-api-base=\"https://your-backend.onrender.com/api\"\u003e\n```\n\n3. Deploy and your site is live!\n\n---\n\n## 🌍 API Endpoints\n\n### Authentication\n\n| Method | Endpoint | Description | Auth Required |\n|--------|----------|-------------|---------------|\n| POST | `/api/auth/register` | Register new user | No |\n| POST | `/api/auth/login` | Login and get JWT | No |\n| POST | `/api/auth/refresh` | Refresh access token | Yes |\n| POST | `/api/auth/logout` | Logout user | Yes |\n\n### Gallery\n\n| Method | Endpoint | Description | Auth Required |\n|--------|----------|-------------|---------------|\n| GET | `/api/gallery` | Fetch all gallery items | No |\n| POST | `/api/gallery` | Upload image | Admin |\n| DELETE | `/api/gallery/:id` | Delete image | Admin |\n\n### Contact\n\n| Method | Endpoint | Description | Auth Required |\n|--------|----------|-------------|---------------|\n| POST | `/api/contact` | Submit contact form | No |\n| GET | `/api/contact` | Get all messages | Admin |\n\n### Testimonials\n\n| Method | Endpoint | Description | Auth Required |\n|--------|----------|-------------|---------------|\n| GET | `/api/testimonials` | Get approved testimonials | No |\n| POST | `/api/testimonials` | Submit testimonial | Yes |\n| PATCH | `/api/testimonials/:id` | Approve testimonial | Admin |\n\n### Metrics\n\n| Method | Endpoint | Description | Auth Required |\n|--------|----------|-------------|---------------|\n| GET | `/api/metrics` | Get platform metrics | No |\n| PUT | `/api/metrics` | Update metrics | Admin |\n\n### Campaigns\n\n| Method | Endpoint | Description | Auth Required |\n|--------|----------|-------------|---------------|\n| GET | `/api/campaigns` | Get all campaigns | No |\n| POST | `/api/campaigns` | Create campaign | Admin |\n| PATCH | `/api/campaigns/:id` | Update campaign | Admin |\n\n**Testing:** Use [Postman](https://www.postman.com/) or [Thunder Client](https://www.thunderclient.com/) for API testing.\n\n---\n\n## 🧪 Testing\n\n```bash\n# Run tests\nnpm test\n\n# Run tests with coverage\nnpm run test:coverage\n\n# Run linter\nnpm run lint\n```\n\n---\n\n## 🤝 Contributing\n\nWe love contributions! Here's how you can help:\n\n1. **Fork the repository**\n2. **Create a feature branch**\n   ```bash\n   git checkout -b feature/amazing-feature\n   ```\n3. **Commit your changes**\n   ```bash\n   git commit -m \"Add amazing feature\"\n   ```\n4. **Push to the branch**\n   ```bash\n   git push origin feature/amazing-feature\n   ```\n5. **Open a Pull Request**\n\n### Contribution Guidelines\n\n- Write clean, readable code\n- Follow existing code style\n- Add comments for complex logic\n- Test your changes thoroughly\n- Update documentation as needed\n\n---\n\n## 🐛 Known Issues\n\n- Gallery images may load slowly on first visit (caching improves subsequent loads)\n- Email notifications may be delayed during high traffic\n\n---\n\n## 📝 Future Enhancements\n\n- [ ] Payment gateway integration (Razorpay/Stripe)\n- [ ] Multi-language support\n- [ ] Mobile app (React Native)\n- [ ] Advanced analytics dashboard\n- [ ] SMS notifications\n- [ ] Social media integration\n- [ ] Volunteer management system\n\n---\n\n## 👨‍💻 Developer\n\n**Tanushree Sarkar**  \nFull-Stack Developer \u0026 Creator of Uplifters.Net\n\n📧 Email: [2k22.csaiml.2212256@gmail.com](mailto:2k22.csaiml.2212256@gmail.com)  \n🔗 GitHub: [@TanushreeSarkar](https://github.com/TanushreeSarkar)  \n🔗 LinkedIn: [Tanushree Sarkar](https://www.linkedin.com/in/tanushree-sarkar-32635624b)\n\n---\n\n## 📄 License\n\nThis project is licensed under the **MIT License** – see the [LICENSE](LICENSE) file for details.\n\nFree to use for personal and commercial projects.\n\n---\n\n## 🙏 Acknowledgments\n\n- Bootstrap for responsive design components\n- Cloudinary for seamless image management\n- MongoDB Atlas for reliable database hosting\n- Render \u0026 Vercel for deployment infrastructure\n- All contributors and supporters of this project\n\n---\n\n## 💖 Final Thoughts\n\n\u003e **\"Technology becomes truly powerful when it uplifts humanity.\"**\n\nThis platform was built with empathy, purpose, and passion to create real positive impact in the world.\n\nEvery donation, every testimonial, and every connection made through this platform represents hope and humanity coming together.\n\n**Thank you for being part of this journey.** 🌟\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  Made with ❤️ by \u003ca href=\"https://github.com/TanushreeSarkar\"\u003eTanushree Sarkar\u003c/a\u003e\n  \u003cbr\u003e\u003cbr\u003e\n  ⭐ Star this repo if you found it helpful!\n\u003c/div\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftanushreesarkar%2Fuplifters-net","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftanushreesarkar%2Fuplifters-net","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftanushreesarkar%2Fuplifters-net/lists"}