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
