A comprehensive project featuring a modern admin dashboard implementation alongside a structured documentation system. This repository contains both the application code and a memory bank documentation system that enables effective knowledge transfer and development.
This project consists of two main components:
-
Admin Dashboard Template (
app-code/): A scalable and maintainable admin dashboard built with Next.js 15, TypeScript, shadcn/ui components, and NextAuth.js for authentication. -
Memory Bank Documentation (
memory-bank/): A structured documentation system that captures project knowledge, design decisions, technical context, and development progress.
vercel-template/
├── app-code/ # Application implementation
│ ├── src/ # Source code
│ │ ├── app/ # Next.js App Router pages and layouts
│ │ ├── components/ # Reusable UI components
│ │ ├── lib/ # Utilities, services, and configurations
│ │ ├── store/ # State management
│ │ └── ...
│ └── ...
│
└── memory-bank/ # Project documentation system
├── projectbrief.md # Core project requirements and goals
├── productContext.md # Purpose and user experience goals
├── systemPatterns.md # Architecture and design patterns
├── techContext.md # Technologies and implementations
├── activeContext.md # Current focus and recent decisions
├── progress.md # Implementation progress tracking
└── .clinerules # Project-specific patterns and rules
The Admin Dashboard Template includes:
- Multiple authentication methods (Email/password, OAuth)
- Protected routes with NextAuth.js middleware
- Comprehensive session handling
- Analytics overview with key metrics
- Interactive data visualization using Recharts
- Responsive design for all device sizes
- Advanced data tables with searching, filtering, and pagination
- Complete CRUD operations for data entities
- Form validation using React Hook Form and Zod
- Profile management with editable fields
- Multi-step dynamic forms
- Theme preferences
- Kanban board with drag-and-drop functionality (dnd-kit)
- Status-based columns for task organization
- Local storage persistence
- Framework: Next.js 15 with App Router
- Language: TypeScript
- Authentication: NextAuth.js
- UI Components: shadcn/ui
- Styling: Tailwind CSS
- Forms: React Hook Form with Zod validation
- State Management: Zustand
- Data Tables: TanStack Table
- Data Fetching: TanStack Query
- Charts: Recharts
- Drag and Drop: dnd-kit
The Memory Bank is a structured documentation system designed to maintain perfect documentation between development sessions. It consists of required core files that capture different aspects of the project:
-
projectbrief.md- Foundation document that shapes all other files
- Defines core requirements and goals
- Source of truth for project scope
-
productContext.md- Why this project exists
- Problems it solves
- How it should work
- User experience goals
-
systemPatterns.md- System architecture
- Key technical decisions
- Design patterns in use
- Component relationships
-
techContext.md- Technologies used
- Development setup
- Technical constraints
- Dependencies
-
activeContext.md- Current work focus
- Recent changes
- Next steps
- Active decisions and considerations
-
progress.md- What works
- What's left to build
- Current status
- Known issues
-
.clinerules- Project-specific patterns
- Learning journal for the project
- Evolution of project decisions
- Node.js 18.x or higher
- npm or yarn
-
Clone the repository into a new directory with your app name:
git clone https://github.com/pdegenhardt/vercel-template.git your-app-name cd your-app-nameReplace
your-app-namewith the actual name you want for your application. -
Run the setup script:
# Make the script executable if needed chmod +x setup.js # Run the setup script ./setup.js
This automated setup script will:
- Install dependencies
- Generate a secure NextAuth secret
- Configure OAuth providers (Google and GitHub) if desired
- Set up environment variables
- Update authentication configuration
-
Run the development server:
cd app-code npm run dev # or yarn dev
-
Open http://localhost:3000 with your browser to see the result.
This project includes automatic deployment to Vercel whenever changes are pushed to the main branch, using GitHub Actions.
- Create a Vercel account at vercel.com
- Import your GitHub repository to Vercel
- Configure the project with:
- Root Directory:
app-code - Framework Preset: Next.js
- Root Directory:
- Obtain the necessary Vercel tokens and IDs
- Add the following secrets to your GitHub repository:
VERCEL_TOKENVERCEL_ORG_IDVERCEL_PROJECT_ID
For detailed instructions, see the VERCEL_DEPLOYMENT.md file.
The Memory Bank system is designed to maintain perfect documentation between development sessions. When starting work on the project:
-
Review the Memory Bank: Read through the core files to understand the current state of the project
- Start with
activeContext.mdandprogress.mdfor the most recent updates - Reference
projectbrief.md,productContext.md,systemPatterns.md, andtechContext.mdas needed
- Start with
-
Update Documentation: After implementing significant changes:
- Update
activeContext.mdwith current focus and recent decisions - Update
progress.mdwith implementation status - Revise other documents as architecture or technology choices evolve
- Update
-
Maintain .clinerules: Document project-specific patterns and insights in
.clinerulesto capture valuable project intelligence
This project follows a documentation-first approach where:
- Changes to requirements should be documented in
projectbrief.md - Architecture decisions should be captured in
systemPatterns.md - Implementation details should be reflected in
techContext.md - Current status should always be updated in
progress.md
The project is currently in the final implementation phase with an overall completion of approximately 95%. All major features have been implemented and are working as expected, with only minor refinements needed.