Next-Gen Task Intelligence for Teams & Individuals
A modern, priority-centric task management system that separates your Solo Missions from Team Objectives while keeping priority at the absolute center.
Overview • Features • Tech Stack • Getting Started • Project Structure • API Reference
Prioritize is a full-stack task management application built with Next.js 16, featuring a premium glassmorphic UI design, team-based collaboration, and a unique priority-first approach to task organization. Whether you're managing personal tasks or coordinating with a team, Prioritize keeps what matters most front and center.
- 🎯 Priority-First Design: Tasks are organized by priority (Urgent → High → Medium → Low), not just status
- 👤 Dual Workspace Model: Switch instantly between personal "Private Space" and team "Team Hub"
- 🏢 Multi-Tenant Architecture: Manage multiple companies/teams with distinct workspaces
- 🔐 Role-Based Access Control: Admin, Officer, and User roles for fine-grained permissions
- 🌙 Premium UI/UX: Modern glassmorphic design with dark/light theme support
| Feature | Description |
|---|---|
| Priority Board | Visual Kanban-style board organized by priority levels (Urgent, High, Medium, Low) |
| Personal Space | Private task management area for non-team tasks |
| Team Hub | Collaborative workspace for company/team tasks |
| Task Assignment | Assign tasks to multiple team members |
| Due Date Tracking | Track deadlines with date-based organization |
| Status Management | Track task status (Pending, In Progress, Completed) |
| Feature | Description |
|---|---|
| Multi-Company Support | Users can belong to multiple companies/teams |
| Role-Based Permissions | Three-tier role system (Admin, Officer, User) |
| Team Invitations | Invite members via email with invitation management |
| Public/Private Tasks | Control task visibility within teams |
| Admin Panel | Dedicated admin interface for team management |
| Feature | Description |
|---|---|
| Glassmorphic Design | Modern, premium aesthetic with blur effects |
| Dark/Light Themes | Full theme support with system preference detection |
| Responsive Layout | Mobile-first design with adaptive navigation |
| Smooth Animations | Micro-interactions and transitions throughout |
- Framework: Next.js 16 (App Router)
- UI Library: React 19
- Styling: Tailwind CSS 4
- Components: Radix UI primitives
- Icons: Lucide React
- Theming: next-themes
- API Routes: Next.js Route Handlers
- Database ORM: Prisma
- Database: PostgreSQL
- Authentication: JWT (JSON Web Tokens) with HTTP-only cookies
- Password Hashing: bcryptjs
- Validation: Zod
- Language: TypeScript 5
- Package Manager: pnpm
- Linting: ESLint 9
- Node.js 18.x or later
- pnpm (recommended) or npm/yarn
- PostgreSQL database
-
Clone the repository
git clone https://github.com/Urcodingbuddy/prioritize.git cd prioritize -
Install dependencies
pnpm install
-
Set up environment variables
Create a
.envfile in the root directory:DATABASE_URL="postgresql://username:password@localhost:5432/prioritize" JWT_SECRET="your-super-secret-jwt-key"
-
Initialize the database
pnpm prisma generate pnpm prisma db push
-
Run the development server
pnpm dev
-
Open your browser
Navigate to http://localhost:3000
pnpm build
pnpm startprioritize/
├── app/ # Next.js App Router
│ ├── api/ # API Route Handlers
│ │ ├── auth/ # Authentication endpoints
│ │ ├── companies/ # Company management
│ │ ├── tasks/ # Task CRUD operations
│ │ ├── teams/ # Team management
│ │ └── users/ # User management
│ ├── admin/ # Admin panel pages
│ ├── dashboard/ # Personal dashboard
│ ├── login/ # Login page
│ ├── register/ # Registration page
│ ├── tasks/ # Task detail pages
│ ├── teams/ # Team pages
│ ├── globals.css # Global styles & design tokens
│ ├── layout.tsx # Root layout
│ └── page.tsx # Landing page
├── components/ # React components
│ ├── ui/ # Base UI components
│ ├── AuthForm.tsx # Authentication form
│ ├── DashboardHeader.tsx # Dashboard header
│ ├── DashboardLayout.tsx # Dashboard layout wrapper
│ ├── PriorityBoard.tsx # Priority-based task board
│ ├── Sidebar.tsx # Navigation sidebar
│ ├── TaskCard.tsx # Task card component
│ ├── TaskForm.tsx # Task create/edit form
│ ├── TaskList.tsx # Task list view
│ ├── TeamInvites.tsx # Team invitation management
│ └── ThemeToggle.tsx # Theme switcher
├── lib/ # Utility functions & types
│ ├── api.ts # API client functions
│ ├── auth.ts # Authentication utilities
│ ├── prisma.ts # Prisma client instance
│ ├── types.ts # TypeScript type definitions
│ └── utils.ts # Helper functions
├── prisma/ # Database schema
│ └── schema.prisma # Prisma schema definition
├── public/ # Static assets
└── package.json # Project dependencies
| Endpoint | Method | Description |
|---|---|---|
/api/auth/register |
POST | Register a new user |
/api/auth/login |
POST | Login and receive JWT token |
/api/auth/logout |
POST | Logout and clear session |
/api/auth/me |
GET | Get current user profile |
| Endpoint | Method | Description |
|---|---|---|
/api/tasks |
GET | List tasks (with filters) |
/api/tasks |
POST | Create a new task |
/api/tasks/[id] |
GET | Get task details |
/api/tasks/[id] |
PUT | Update a task |
/api/tasks/[id] |
DELETE | Delete a task |
| Endpoint | Method | Description |
|---|---|---|
/api/companies |
GET | List user's companies |
/api/companies |
POST | Create a new company |
/api/teams/members |
GET | List team members |
/api/teams/invite |
POST | Invite a member |
/api/teams/invitations |
GET | List pending invitations |
User ─────────┬───────── TeamMembership ─────── Company
│ │
│ │
└───────── Task ─────────────────────┘
│
│
UserTask (assignments)
- Priority:
LOW|MEDIUM|HIGH|URGENT - Status:
PENDING|IN_PROGRESS|COMPLETED - Role:
USER|OFFICER|ADMIN - InvitationStatus:
PENDING|ACCEPTED|DECLINED
- Login or Register for an account
- Access your Personal Space (Dashboard)
- Create tasks with priority levels, due dates, and descriptions
- View tasks organized by priority on the Priority Board
- Navigate to Teams from the sidebar
- Create a company or accept an invitation
- Switch between companies using the company selector
- Create public tasks visible to all team members
- Assign tasks to specific team members
- Use the Admin Panel (Admin role) to manage members and roles
| Command | Description |
|---|---|
pnpm dev |
Start development server |
pnpm build |
Build for production |
pnpm start |
Start production server |
pnpm lint |
Run ESLint |
pnpm prisma generate |
Generate Prisma client |
pnpm prisma db push |
Push schema to database |
pnpm prisma studio |
Open Prisma Studio |
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is private and proprietary.
Made with ❤️ by @Urcodingbuddy
