A production-ready REST API for a productivity application that enables users to manage tasks, track daily streaks, and securely access their data using JWT Authentication.
🔗 https://streakify-api.onrender.com/
- JWT Authentication
- Secure Protected Routes
- User Registration & Login
- Full CRUD Operations for Tasks
- Daily Streak Tracking
- User-specific Data Isolation
- RESTful API Design
- Error Handling & Validation
- Node.js
- Express.js
- MongoDB
- Mongoose
- JWT
- Bcrypt
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/register |
Register a new user |
| POST | /api/login |
Login user |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/tasks |
Get all tasks |
| POST | /api/tasks |
Create a task |
| PUT | /api/tasks/:id |
Update a task |
| DELETE | /api/tasks/:id |
Delete a task |
All protected routes require:
Authorization: Bearer YOUR_JWT_TOKEN- Completing tasks on consecutive days increases the streak.
- Missing a day resets the streak.
- Multiple task completions on the same day count only once.
controllers/
middleware/
models/
routes/
app.js
package.json
Clone the repository
git clone https://github.com/OmBaisane/Streakify-API.gitNavigate to the project
cd Streakify-APIInstall dependencies
npm installCreate a .env file:
PORT=3000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_keyRun the server
npm run dev- JWT Authentication
- REST API Design
- Express Middleware
- MongoDB & Mongoose
- Authentication & Authorization
- Secure Route Protection
- Backend Project Structure
- Refresh Tokens
- Email Verification
- Password Reset
- Rate Limiting
- Swagger API Documentation
- Docker Support
- 🌐 Portfolio: https://portfolio-nine-phi-ry8fa70ws1.vercel.app
- 💻 GitHub: https://github.com/OmBaisane
- 💼 LinkedIn: https://www.linkedin.com/in/om-baisane-b96625346
- 📧 Email: ombaisane29@gmail.com
This project is licensed under the MIT License.