# Project 3

> A project task card displaying priority status, task details, assignee, and calendar due date.

A shadcn/ui block from the [@paceui](https://paceui.com/?utm_source=shadcn.exchange) registry, listed on [shadcn.exchange](https://shadcn.exchange/r/paceui/app-project-3).

- Page, with a live preview: https://shadcn.exchange/r/paceui/app-project-3
- Screenshot: https://abzjhwgwpdpz7ua5.public.blob.vercel-storage.com/shots/paceui/app-project-3-light-b372cfe0fbe37beb.png
- Registry item: https://paceui.com/r/app-project-3.json
- Listed: 2026-10-21, source last changed 2026-10-21

## Install

```bash
npx shadcn@latest add https://shadcn.exchange/r/paceui/app-project-3.json
```

Run it in a project that has shadcn/ui set up. It adds the files below and installs what they depend on.

## Dependencies

- Registry items: `card`, `button`, `avatar`, `badge`, `dropdown-menu`

## Files

### `components/blocks/app/project/project-3.tsx`

```tsx
import { Calendar, MoreHorizontal } from "lucide-react";

import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar";
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import { Card, CardAction, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
import {
    DropdownMenu,
    DropdownMenuContent,
    DropdownMenuItem,
    DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";

export const AppProject3 = () => {
    return (
        <Card>
            <CardHeader>
                <div className="flex items-center justify-between">
                    <div className="flex items-center gap-2">
                        <Badge variant="outline">Medium</Badge>
                        <Badge variant="secondary">Planned</Badge>
                    </div>
                    <CardAction>
                        <DropdownMenu>
                            <DropdownMenuTrigger
                                render={
                                    <Button variant="ghost" size="icon-xs" className="cursor-pointer">
                                        <MoreHorizontal className="size-4" />
                                        <span className="sr-only">Open options</span>
                                    </Button>
                                }></DropdownMenuTrigger>
                            <DropdownMenuContent align="end">
                                <DropdownMenuItem className="cursor-pointer">Edit Task</DropdownMenuItem>
                                <DropdownMenuItem className="cursor-pointer">Mark Complete</DropdownMenuItem>
                            </DropdownMenuContent>
                        </DropdownMenu>
                    </CardAction>
                </div>
            </CardHeader>
            <CardContent className="flex flex-col gap-4">
                <div className="flex flex-col gap-1.5">
                    <CardTitle className="text-lg">Implement multi-factor authentication</CardTitle>
                    <CardDescription>
                        Add support for authenticator apps (TOTP) and SMS verification in the user settings dashboard.
                    </CardDescription>
                </div>
                <div className="flex items-center justify-between">
                    <div className="flex items-center gap-3">
                        <Avatar size="lg">
                            <AvatarImage
                                src="https://images.unsplash.com/photo-1544005313-94ddf0286df2?auto=format&fit=facearea&facepad=2&w=256&h=256&q=80"
                                alt="Elena Rostova"
                            />
                            <AvatarFallback>ER</AvatarFallback>
                        </Avatar>
                        <div className="flex flex-col">
                            <span className="text-sm font-medium">Elena Rostova</span>
                            <span className="text-muted-foreground text-xs">Assignee</span>
                        </div>
                    </div>
                    <div className="text-muted-foreground flex items-center gap-2 text-sm">
                        <Calendar className="size-4" />
                        <span>Due Jun 30</span>
                    </div>
                </div>
            </CardContent>
        </Card>
    );
};
```
