{"id":25935337,"url":"https://github.com/souravwalke/hypemeup","last_synced_at":"2026-04-04T21:31:40.497Z","repository":{"id":280242755,"uuid":"940987476","full_name":"souravwalke/HypeMeUp","owner":"souravwalke","description":"HypeMeUp is a motivational email service that sends daily inspirational quotes to job seekers, helping them stay motivated during their job search journey.","archived":false,"fork":false,"pushed_at":"2025-03-03T21:09:28.000Z","size":10813,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-03T21:22:10.294Z","etag":null,"topics":["expressjs","nextjs","nodejs","nodemailer","postgresql","shadcn-ui","tailwindcss","typeorm","typescript"],"latest_commit_sha":null,"homepage":"https://hypemeup.souravwalke.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/souravwalke.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-03-01T07:55:32.000Z","updated_at":"2025-03-03T21:09:31.000Z","dependencies_parsed_at":"2025-03-03T21:32:41.587Z","dependency_job_id":null,"html_url":"https://github.com/souravwalke/HypeMeUp","commit_stats":null,"previous_names":["souravwalke/dailyjobboost","souravwalke/hypemeup"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/souravwalke/HypeMeUp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/souravwalke%2FHypeMeUp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/souravwalke%2FHypeMeUp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/souravwalke%2FHypeMeUp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/souravwalke%2FHypeMeUp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/souravwalke","download_url":"https://codeload.github.com/souravwalke/HypeMeUp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/souravwalke%2FHypeMeUp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262697249,"owners_count":23349890,"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","nextjs","nodejs","nodemailer","postgresql","shadcn-ui","tailwindcss","typeorm","typescript"],"created_at":"2025-03-04T01:34:10.951Z","updated_at":"2025-10-17T03:03:51.195Z","avatar_url":"https://github.com/souravwalke.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HypeMeUp\n\nHypeMeUp is a motivational email service that sends daily inspirational quotes to job seekers, helping them stay motivated during their job search journey. It features smart quote rotation, timezone-based delivery, and a secure admin interface for content management.\n\n## Features\n\n### Email System\n\n- 📧 Daily motivational quotes via email\n- ⏰ Intelligent timezone-based delivery at 9 AM local time\n- 🔄 Smart quote rotation to prevent repetition\n- 📊 Email delivery tracking and logging\n- 🎨 Beautiful, responsive email templates\n- ✉️ Welcome emails for new subscribers\n\n### User Management\n\n- 👤 Easy subscription with email and timezone\n- 🔒 Secure unsubscribe functionality\n- 📝 User preference management\n- 📈 Activity tracking\n\n### Quote Management\n\n- 📚 Admin dashboard for quote management\n- ✨ CRUD operations for quotes\n- 🔄 Smart quote rotation system\n- 🏷️ Quote categorization\n- 📊 Quote usage tracking\n\n### Security\n\n- 🔐 JWT-based admin authentication\n- 🛡️ Protected admin routes\n- 🔒 Secure email tokens\n- 🌐 CORS protection\n- 🔑 Environment variable configuration\n\n## Tech Stack\n\n### Frontend\n\n- Next.js 13+\n- TypeScript\n- Tailwind CSS\n- Shadcn UI\n- React Hook Form\n- Zod Validation\n\n### Backend\n\n- Node.js\n- Express\n- TypeScript\n- TypeORM\n- PostgreSQL\n- Nodemailer\n- JWT Authentication\n- node-cron\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js (v18 or higher)\n- PostgreSQL\n- SMTP server access (e.g., Gmail)\n\n### Installation\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/yourusername/hypemeup.git\ncd hypemeup\n```\n\n2. Install dependencies:\n\n```bash\n# Install backend dependencies\ncd backend\nnpm install\n\n# Install frontend dependencies\ncd ../frontend\nnpm install\n```\n\n3. Set up environment variables:\n\n```bash\n# Backend (.env)\ncp backend/.env.example backend/.env\n# Update the .env file with your database and SMTP credentials\n\n# Frontend (.env)\ncp frontend/.env.example frontend/.env\n```\n\n4. Set up the database:\n\n```bash\ncd backend\nnpm run typeorm migration:run\n```\n\n5. Start the development servers:\n\n```bash\n# Start backend (in backend directory)\nnpm run dev\n\n# Start frontend (in frontend directory)\nnpm run dev\n```\n\n6. Visit `http://localhost:3000` to see the application\n\n## Environment Variables\n\n### Backend (.env)\n\n- `PORT`: Server port (default: 3001)\n- `NODE_ENV`: Environment (development/production)\n- `FRONTEND_URL`: Frontend application URL\n- `DATABASE_URL`: PostgreSQL database connection URL\n- `JWT_SECRET`: Secret key for JWT token generation\n- `UNSUBSCRIBE_SECRET`: Secret key for unsubscribe links\n- `SMTP_HOST`: SMTP server host\n- `SMTP_PORT`: SMTP server port\n- `SMTP_USER`: SMTP server username\n- `SMTP_PASS`: SMTP server password\n- `SMTP_SECURE`: SMTP secure connection (true/false)\n- `EMAIL_FROM`: Sender email address\n- `ADMIN_EMAIL`: Admin user email\n- `ADMIN_PASSWORD`: Admin user password\n\n## Frontend (.env.local)\n\n- `NEXT_PUBLIC_API_URL`: Backend API URL (e.g., https://hypemeup-production.up.railway.app)\n\n## API Endpoints\n\n### User Management\n\n```http\nPOST /api/users/subscribe\nContent-Type: application/json\n\n{\n  \"email\": \"user@example.com\",\n  \"timezone\": \"America/New_York\"\n}\n```\n\n```http\nGET /api/users/unsubscribe/:token\nPOST /api/users/unsubscribe\n```\n\n### Quote Management (Protected)\n\n```http\nGET    /api/quotes       # Get all quotes\nPOST   /api/quotes       # Create new quote\nGET    /api/quotes/:id   # Get single quote\nPUT    /api/quotes/:id   # Update quote\nDELETE /api/quotes/:id   # Delete quote\nGET    /api/quotes/random # Get random quote\n```\n\n### Authentication\n\n```http\nPOST /api/auth/login    # Admin login\nPOST /api/auth/register # Admin registration (protected)\n```\n\n## Database Schema\n\n### Users\n\n- `id`: Primary key\n- `email`: Unique email address\n- `timezone`: User's timezone\n- `isActive`: Subscription status\n- `createdAt`: Timestamp\n\n### Quotes\n\n- `id`: Primary key\n- `content`: Quote text\n- `author`: Quote author (optional)\n- `category`: Quote category (optional)\n- `createdAt`: Timestamp\n\n### EmailLogs\n\n- `id`: Primary key\n- `userId`: Foreign key to Users\n- `quoteId`: Foreign key to Quotes\n- `sentAt`: Timestamp\n- `status`: Delivery status\n\n### Admins\n\n- `id`: Primary key\n- `username`: Unique username\n- `password`: Hashed password\n- `createdAt`: Timestamp\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsouravwalke%2Fhypemeup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsouravwalke%2Fhypemeup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsouravwalke%2Fhypemeup/lists"}