Version 2.0 - A modern project management dashboard built with Next.js and NestJS, featuring email-based authentication, real-time ticket management, and collaborative workspace functionality. Experience a sleek dark theme interface with an elegant landing page and intuitive project management tools.
- Frontend: https://pulse-front.netlify.app
- Backend API: https://ticket-dashboard-backend-j8pu.onrender.com
- Email-based OTP Login: No password required, secure OTP verification
- JWT Token Management: Persistent authentication with automatic token refresh
- Session Management: Secure logout and session handling
- Project CRUD Operations: Create, read, update, and delete projects
- Bulk Operations: Select and delete multiple projects simultaneously
- Enhanced Dashboard: Modern project dashboard with search, sorting, and view modes (grid/list)
- Project Statistics: Real-time statistics including total projects, tickets, and completion rates
- Interactive Cards: Hover effects, progress indicators, and quick actions
- Kanban Board: Drag-and-drop ticket management across status columns
- Real-time Updates: Instant synchronization across all connected users
- Ticket CRUD: Create, edit, and delete tickets with descriptions
- Search Functionality: Quick ticket search and filtering
- Admin Toggle: Password-protected super user mode
- User Attribution: Display who created/updated tickets when enabled
- Secure Access: Protected admin functionality with password verification
- Real-time Activity Feed: Live notifications for active users
- Email Notifications: Automated email alerts for offline team members
- WebSocket Integration: Instant updates across all connected clients
- Framework: Next.js 15.5.4 with TypeScript
- State Management: Zustand with persistence
- Styling: Custom CSS with modern dark theme (#0f0f0f, #1a1a1a, #2a2a2a)
- UI Components: Landing page with hero section, features showcase, and CTA
- Drag & Drop: @dnd-kit for smooth ticket management
- HTTP Client: Axios for API communication
- Real-time: Socket.io-client for live updates
- Navigation: Seamless routing with Next.js App Router
- Framework: NestJS with TypeScript
- Database: PostgreSQL with Prisma ORM
- Authentication: JWT with Passport.js
- Email Service: SendGrid for OTP and notifications
- Real-time: Socket.io for WebSocket connections
- Validation: Class-validator for request validation
- Type: PostgreSQL (Relational Database)
- ORM: Prisma for type-safe database operations
- Hosting: Neon (Serverless PostgreSQL)
- Frontend: Netlify
- Backend: Render
- Database: Neon PostgreSQL
- Node.js 18+
- PostgreSQL database
- SendGrid account (for email notifications)
- Clone the repository
git clone https://github.com/sharmaasahill/pulse.git
cd pulse- Backend Setup
cd backend
npm install
cp .env.example .env # Configure your environment variables
npm run start:dev- Frontend Setup
cd frontend
npm install
cp .env.local.example .env.local # Configure your environment variables
npm run devBackend (.env)
DATABASE_URL="postgresql://username:password@localhost:5432/ticket_dashboard"
JWT_SECRET="your-jwt-secret"
SUPER_PASSWORD="your-super-password"
SENDGRID_API_KEY="your-sendgrid-api-key"
SMTP_HOST="smtp.sendgrid.net"
SMTP_PORT=587
SMTP_USER="apikey"
SMTP_PASS="your-sendgrid-api-key"Frontend (.env.local)
NEXT_PUBLIC_API_URL="http://localhost:3001"pulse/
├── backend/
│ ├── src/
│ │ ├── auth/ # Authentication module
│ │ ├── projects/ # Project management
│ │ ├── tickets/ # Ticket management
│ │ ├── notifications/ # Notification system
│ │ ├── realtime/ # WebSocket gateway
│ │ ├── admin/ # Super user controls
│ │ ├── common/ # Shared utilities
│ │ └── prisma/ # Database schema
│ ├── prisma/
│ │ └── schema.prisma # Database schema
│ └── package.json
├── frontend/
│ ├── src/
│ │ ├── app/ # Next.js app directory
│ │ │ ├── page.tsx # Landing page
│ │ │ ├── components/ # Reusable components (Navbar, LoginModal)
│ │ │ ├── projects/ # Project pages
│ │ │ └── globals.css # Global styles and theme variables
│ │ ├── lib/ # Utilities and API client
│ │ └── store/ # Zustand stores
│ └── package.json
└── README.md
POST /auth/issue-otp- Send OTP to emailPOST /auth/verify-otp- Verify OTP and get token
GET /projects- Get all projectsPOST /projects- Create new projectPUT /projects/:id- Update projectDELETE /projects/:id- Delete project
GET /projects/:id/tickets- Get project ticketsPOST /tickets- Create new ticketPUT /tickets/:id- Update ticketDELETE /tickets/:id- Delete ticket
POST /admin/super-verify- Verify super user password
- Connect GitHub repository to Netlify
- Set build command:
cd frontend && npm install && npm run build - Set publish directory:
frontend/.next - Configure environment variables
- Connect GitHub repository to Render
- Set build command:
cd backend && npm install && npm run build - Set start command:
cd backend && npm run start:prod - Configure environment variables
- Create PostgreSQL database on Neon
- Run migrations:
npx prisma migrate deploy - Update DATABASE_URL in backend environment
- Complete rebranding to "Pulse"
- Modern dark theme implementation
- Enhanced landing page with hero section
- Improved project dashboard with search, sorting, and statistics
- Better navigation and user experience
- Removed emoji icons for professional appearance
- Initial release with basic project and ticket management
- Email-based OTP authentication
- Real-time collaboration features
- Kanban board with drag-and-drop
Sahil Sharma
- Email: i.sahilkrsharma@gmail.com
- GitHub: @sharmaasahill