{"id":26931452,"url":"https://github.com/harshtanwar143/work_manager_next.js","last_synced_at":"2026-04-09T23:06:47.894Z","repository":{"id":280595036,"uuid":"942476969","full_name":"HarshTanwar143/Work_Manager_Next.js","owner":"HarshTanwar143","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-10T12:16:55.000Z","size":349,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-10T13:25:37.890Z","etag":null,"topics":["bcryptjs","cloudinary","cronjob","crud-operation","javascript","jwt","middlewares","mongodb","nextjs","restful-api","tailwindcss"],"latest_commit_sha":null,"homepage":"https://work-manager-next-js-ecru.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/HarshTanwar143.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-03-04T06:57:30.000Z","updated_at":"2025-06-10T12:19:40.000Z","dependencies_parsed_at":"2025-03-04T09:39:59.264Z","dependency_job_id":null,"html_url":"https://github.com/HarshTanwar143/Work_Manager_Next.js","commit_stats":null,"previous_names":["harshtanwar143/work_manager_next.js"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/HarshTanwar143/Work_Manager_Next.js","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshTanwar143%2FWork_Manager_Next.js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshTanwar143%2FWork_Manager_Next.js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshTanwar143%2FWork_Manager_Next.js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshTanwar143%2FWork_Manager_Next.js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HarshTanwar143","download_url":"https://codeload.github.com/HarshTanwar143/Work_Manager_Next.js/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshTanwar143%2FWork_Manager_Next.js/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274429374,"owners_count":25283366,"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","status":"online","status_checked_at":"2025-09-10T02:00:12.551Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["bcryptjs","cloudinary","cronjob","crud-operation","javascript","jwt","middlewares","mongodb","nextjs","restful-api","tailwindcss"],"created_at":"2025-04-02T07:17:24.998Z","updated_at":"2026-04-09T23:06:47.867Z","avatar_url":"https://github.com/HarshTanwar143.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Work Manager - Next.js Task Management Application\n\n\u003cdiv align=\"center\"\u003e\n  \n  ![Next.js](https://img.shields.io/badge/Next.js-13+-black?style=for-the-badge\u0026logo=next.js\u0026logoColor=white)\n  ![MongoDB](https://img.shields.io/badge/MongoDB-4EA94B?style=for-the-badge\u0026logo=mongodb\u0026logoColor=white)\n  ![JWT](https://img.shields.io/badge/JWT-000000?style=for-the-badge\u0026logo=JSON%20web%20tokens\u0026logoColor=white)\n  ![Node.js](https://img.shields.io/badge/Node.js-43853D?style=for-the-badge\u0026logo=node.js\u0026logoColor=white)\n  ![Cloudinary](https://img.shields.io/badge/Cloudinary-1f4f9f?style=for-the-badge\u0026logo=cloudinary\u0026logoColor=white)\n\n  **A powerful, secure, and user-friendly task management application built with modern web technologies**\u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\n  ![image](https://github.com/user-attachments/assets/4f8defae-e7f2-4f38-9dc4-22bb40e2b5da) \u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\n  ![image](https://github.com/user-attachments/assets/cd846451-066e-468d-9e70-63afa65dc8f1) \u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\n  ![image](https://github.com/user-attachments/assets/1a720480-ae4c-423c-811a-1fbe38fe878d) \u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\n  ![image](https://github.com/user-attachments/assets/2fe27571-6800-4e8d-9da3-5a0e88462f22) \u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\n  ![image](https://github.com/user-attachments/assets/ca374c45-afa4-47f7-a911-513de63b6add) \u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\n  ![image](https://github.com/user-attachments/assets/dbeca616-a648-4402-8715-8f50f27030bc) \u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e\n\n\u003c/div\u003e\n\n---\n\n## 📖 Overview\n\nWork Manager is a comprehensive task management application that empowers users to organize, track, and manage their daily tasks efficiently. Built with Next.js and powered by MongoDB, it offers a seamless experience with robust authentication, cloud storage integration, and intelligent account recovery mechanisms.\n\n### 🎯 Why Work Manager?\n\n- **🔐 Secure Authentication**: JWT-based authentication system\n- **⏰ Smart Account Recovery**: 1-hour grace period for account deletion\n- **☁️ Cloud Integration**: Cloudinary for profile picture storage  \n- **📱 Responsive Design**: Works perfectly on all devices\n- **🔄 Real-time Updates**: Instant task status synchronization\n- **🛡️ Data Security**: Encrypted user data with secure REST APIs\n\n---\n\n## ✨ Features\n\n### 🔑 **Authentication \u0026 Security**\n- **JWT Token Authentication** - Secure login/logout system\n- **Protected Routes** - Route-level security implementation\n- **Session Management** - Automatic token refresh and validation\n- **Password Encryption** - Bcrypt hashing for password security\n\n### 📋 **Task Management**\n- **Create Tasks** - Add new tasks with detailed descriptions\n- **Update Tasks** - Edit task content and priorities\n- **Delete Tasks** - Remove completed or unwanted tasks\n- **Status Tracking** - Mark tasks as pending or completed\n- **Task Filtering** - Filter by status, date, or priority\n- **Search Functionality** - Quick task search and retrieval\n\n### 👤 **User Profile Management**\n- **Profile Pictures** - Upload and manage profile images via Cloudinary\n- **User Settings** - Customize account preferences\n- **Account Information** - Update personal details\n\n### 🕐 **Smart Account Deletion**\n- **Grace Period** - 1-hour window before permanent deletion\n- **Cron Job Implementation** - Automated background processes\n- **Account Recovery** - Re-login to cancel deletion process\n- **Data Backup** - Temporary data preservation during grace period\n\n### 🌐 **API \u0026 Integration**\n- **RESTful APIs** - Complete CRUD operations\n- **MongoDB Integration** - Efficient data storage and retrieval\n- **Cloudinary Integration** - Seamless image upload and management\n- **Error Handling** - Comprehensive error management system\n\n---\n\n## 🛠️ Tech Stack\n\n### **Frontend**\n```\nNext.js 13+     - React framework with App Router\nReact 18        - Component-based UI library\nTailwind CSS    - Utility-first CSS framework\nJavaScript/JSX  - Modern JavaScript with JSX\n```\n\n### **Backend**\n```\nNext.js API     - Serverless API routes\nNode.js         - JavaScript runtime\nJWT             - JSON Web Tokens for authentication\nBcrypt          - Password hashing\n```\n\n### **Database \u0026 Storage**\n```\nMongoDB         - NoSQL database\nMongoose        - MongoDB object modeling\nCloudinary      - Cloud image storage\n```\n\n### **DevOps \u0026 Utilities**\n```\nCron Jobs       - Scheduled background tasks\nVercel          - Deployment platform\nGit             - Version control\n```\n\n---\n\n## 🚀 Quick Start\n\n### Prerequisites\n```bash\nNode.js 16.0 or higher\nMongoDB Atlas account or local MongoDB\nCloudinary account\nGit\n```\n\n### Installation\n\n1. **Clone the Repository**\n   ```bash\n   git clone https://github.com/HarshTanwar143/Work_Manager_Next.js.git\n   cd Work_Manager_Next.js\n   ```\n\n2. **Install Dependencies**\n   ```bash\n   npm install\n   # or\n   yarn install\n   ```\n\n3. **Environment Setup**\n   Create a `.env.local` file in the root directory:\n   ```env\n   # Database\n   MONGODB_URI=your_mongodb_connection_string\n   \n   # JWT Secret\n   JWT_SECRET=your_super_secret_jwt_key\n   \n   # Cloudinary Configuration\n   CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name\n   CLOUDINARY_API_KEY=your_cloudinary_api_key\n   CLOUDINARY_API_SECRET=your_cloudinary_api_secret\n   \n   # App Configuration\n   NEXTAUTH_URL=http://localhost:3000\n   NEXTAUTH_SECRET=your_nextauth_secret\n   ```\n\n4. **Run the Development Server**\n   ```bash\n   npm run dev\n   # or\n   yarn dev\n   ```\n\n5. **Open Your Browser**\n   Navigate to [http://localhost:3000](http://localhost:3000)\n\n---\n\n## 📂 Project Structure\n\n```\nWork_Manager_Next.js/\n├── 📁 app/                    # Next.js 13+ App Router\n│   ├── 📁 api/               # API routes\n│   │   ├── 📁 auth/          # Authentication endpoints\n│   │   ├── 📁 tasks/         # Task management endpoints\n│   │   └── 📁 users/         # User management endpoints\n│   ├── 📁 components/        # Reusable React components\n│   ├── 📁 lib/              # Utility functions and configurations\n│   └── 📁 styles/           # Global styles and Tailwind config\n├── 📁 models/               # MongoDB schemas\n├── 📁 middleware/           # Custom middleware functions\n├── 📁 utils/               # Helper functions\n├── 📁 public/              # Static assets\n├── 📄 package.json         # Dependencies and scripts\n├── 📄 tailwind.config.js   # Tailwind CSS configuration\n├── 📄 next.config.js       # Next.js configuration\n└── 📄 README.md           # Project documentation\n```\n\n---\n\n## 📋 API Documentation\n\n### Authentication Endpoints\n\n#### **POST** `/api/auth/register`\nRegister a new user account\n```json\n{\n  \"name\": \"John Doe\",\n  \"email\": \"john@example.com\",\n  \"password\": \"securepassword123\"\n}\n```\n\n#### **POST** `/api/auth/login`\nAuthenticate user and return JWT token\n```json\n{\n  \"email\": \"john@example.com\",\n  \"password\": \"securepassword123\"\n}\n```\n\n#### **POST** `/api/auth/logout`\nLogout user and invalidate token\n\n### Task Management Endpoints\n\n#### **GET** `/api/tasks`\nRetrieve all tasks for authenticated user\n\n#### **POST** `/api/tasks`\nCreate a new task\n```json\n{\n  \"title\": \"Complete project documentation\",\n  \"description\": \"Write comprehensive README and API docs\",\n  \"priority\": \"high\",\n  \"dueDate\": \"2024-12-31\"\n}\n```\n\n#### **PUT** `/api/tasks/[id]`\nUpdate existing task\n\n#### **DELETE** `/api/tasks/[id]`\nDelete a specific task\n\n#### **PATCH** `/api/tasks/[id]/status`\nUpdate task status (pending/completed)\n\n### User Management Endpoints\n\n#### **GET** `/api/users/profile`\nGet user profile information\n\n#### **PUT** `/api/users/profile`\nUpdate user profile\n\n#### **DELETE** `/api/users/account`\nInitiate account deletion (with 1-hour grace period)\n\n#### **POST** `/api/users/recover`\nCancel account deletion during grace period\n\n---\n\n## 🔧 Configuration\n\n### MongoDB Setup\n1. Create a MongoDB Atlas cluster\n2. Get your connection string\n3. Add it to your `.env.local` file\n\n### Cloudinary Setup\n1. Create a Cloudinary account\n2. Get your cloud name, API key, and API secret\n3. Add them to your `.env.local` file\n\n### JWT Configuration\nGenerate a secure random string for your JWT secret:\n```bash\nnode -e \"console.log(require('crypto').randomBytes(32).toString('hex'))\"\n```\n\n---\n\n## 🚦 Usage\n\n### Creating Your First Task\n1. Register for an account or login\n2. Navigate to the dashboard\n3. Click \"Add New Task\"\n4. Fill in task details\n5. Click \"Create Task\"\n\n### Managing Task Status\n- Click the checkbox to mark tasks as completed\n- Use the status filter to view pending/completed tasks\n- Edit tasks by clicking the edit icon\n\n### Profile Management\n- Upload your profile picture\n- Update your personal information\n- Manage account settings\n\n### Account Deletion Recovery\nIf you accidentally delete your account:\n1. Try logging in within 1 hour\n2. Your account will be automatically recovered\n3. All your data will be restored\n\n---\n\n## 🎨 Customization\n\n### Theme Configuration\nModify `tailwind.config.js` to customize colors, fonts, and spacing:\n```javascript\nmodule.exports = {\n  theme: {\n    extend: {\n      colors: {\n        primary: '#your-primary-color',\n        secondary: '#your-secondary-color',\n      }\n    }\n  }\n}\n```\n\n### Adding New Features\n1. Create new API routes in `app/api/`\n2. Add corresponding frontend components\n3. Update the database schema if needed\n4. Test thoroughly before deployment\n\n---\n\n## 🚀 Deployment\n\n### Vercel Deployment (Recommended)\n1. Push your code to GitHub\n2. Connect your repository to Vercel\n3. Add environment variables in Vercel dashboard\n4. Deploy automatically on every push\n\n### Manual Deployment\n```bash\nnpm run build\nnpm start\n```\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions! Here's how you can help:\n\n### Contributing Guidelines\n1. **Fork** the repository\n2. **Create** a feature branch (`git checkout -b feature/AmazingFeature`)\n3. **Commit** your changes (`git commit -m 'Add some AmazingFeature'`)\n4. **Push** to the branch (`git push origin feature/AmazingFeature`)\n5. **Open** a Pull Request\n\n### Code Style\n- Follow JavaScript/React best practices\n- Use meaningful variable and function names\n- Add comments for complex logic\n- Ensure responsive design\n\n### Bug Reports\nIf you find a bug, please create an issue with:\n- Clear bug description\n- Steps to reproduce\n- Expected behavior\n- Screenshots (if applicable)\n\n---\n\n## 👨‍💻 Author\n\n**Harsh Tanwar**\n- GitHub: [@HarshTanwar143](https://github.com/HarshTanwar143)\n- LinkedIn: [Connect with me](https://www.linkedin.com/in/harsh-tanwar-04315b247/)\n- Email: harshtanwar14122003@gmail.com\n\n---\n\n## 🙏 Acknowledgments\n\n- [Next.js](https://nextjs.org/) - The React framework that powers this app\n- [MongoDB](https://www.mongodb.com/) - Database solution\n- [Cloudinary](https://cloudinary.com/) - Image management platform\n- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework\n- [Vercel](https://vercel.com/) - Deployment platform\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**⭐ Star this repository if you found it helpful! ⭐**\n\n![GitHub stars](https://img.shields.io/github/stars/HarshTanwar143/Work_Manager_Next.js?style=social)\n![GitHub forks](https://img.shields.io/github/forks/HarshTanwar143/Work_Manager_Next.js?style=social)\n![GitHub watchers](https://img.shields.io/github/watchers/HarshTanwar143/Work_Manager_Next.js?style=social)\n\n**Made with ❤️ by [Harsh Tanwar](https://github.com/HarshTanwar143)**\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharshtanwar143%2Fwork_manager_next.js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharshtanwar143%2Fwork_manager_next.js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharshtanwar143%2Fwork_manager_next.js/lists"}