Skip to content

Nokohokon/personal_dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

4ac0e5fΒ Β·Β Β· Jul 21, 2025

History

13 Commits
Jul 21, 2025
Jul 21, 2025
Jul 21, 2025
Jun 17, 2025
Jun 15, 2025
Jul 21, 2025
Jul 2, 2025
Jun 15, 2025
Jul 21, 2025
Jun 17, 2025
Jun 17, 2025
Jul 2, 2025
Jul 2, 2025
Jun 17, 2025
Jun 17, 2025
Jun 17, 2025
Jun 17, 2025
Jun 17, 2025
Jun 17, 2025
Jun 17, 2025
Jun 15, 2025
Jun 17, 2025
Jun 16, 2025
Jul 2, 2025
Jun 17, 2025
Jun 15, 2025
Jun 17, 2025
Jun 17, 2025
Jul 2, 2025
Jun 15, 2025
Jun 17, 2025
Jul 2, 2025
Jul 2, 2025
Jun 17, 2025
Jun 17, 2025
Jul 2, 2025
Jul 2, 2025
Jun 15, 2025

Repository files navigation

Personal Dashboard

A highly professional and modern personal dashboard with comprehensive productivity features, built with Next.js 15, TypeScript, MongoDB, and NextAuth.js.

🌟 Features

πŸ” Authentication & Securityrity

  • NextAuth.js Integration - Secure authentication with email/password
  • Magic Link Authentication - Passwordless login via email link
  • Password Hashing - Secure storage with bcryptjs
  • Session Management - JWT-based sessions
  • Flexible Login Options - Choice between password or magic link

⏱️ Time Tracking

  • Project-based Time Tracking - Organized by projects and tasks
  • Live Timer - Real-time time tracking with start/stop functionality
  • Automatic Calculations - Duration calculated automatically
  • History & Analyticstics - Detailed time tracking with reports

πŸ‘₯ CRM & Contactsacts

  • Contact Management - Complete contact database
  • Tagging System - Contact categorization
  • Company Integration - Link to companies and positions
  • Search Function - Quick contact search

πŸ“ Notes System

  • Categorized Notes - Organized by categories
  • Markdown Support - Rich-text notes
  • Contact Linking - Notes can be linked to contacts
  • Tag System - Flexible categorization
  • Collaborative Notes - Share notes with other people
  • Project Integration - Link notes to projects

🀝 Project Collaboration

  • Team Management - Add team members via email
  • Role-based Permissions - Project owners vs. collaborators
  • Project-based Access Control - Automatic content permissions
  • Email-based Invitations - Registered and unregistered users
  • Collaborative Content - Shared notes, documents, contacts, and events

πŸ”’ Access and Permission Management

  • Project Owner Rights - Full access to all project data and project editing
  • Collaborator Rights - Read/write access ONLY to project-related content (NOT the project itself)
  • Clear Separation - Collaborators cannot edit project details
  • Protected Analytics - Time tracking and analytics only for owners
  • Granular Sharing - Share individual notes and documents

πŸ“Š Permission Matrix

Feature Project Owner Collaborator Individual Sharing
Edit Project βœ… ❌ ❌
Manage Team βœ… ❌ ❌
Change Project Details βœ… ❌ ❌
Change Status/Budget βœ… ❌ ❌
Notes (project-related) βœ… βœ… βœ…
Documents (project-related) βœ… βœ… βœ…
Contacts (project-related) βœ… βœ… βœ…
Calendar (project-related) βœ… βœ… βœ…
Time-Tracking βœ… ❌ ❌
Analytics βœ… ❌ ❌

πŸ” Important Clarification:

  • Collaborators cannot edit the project itself (name, status, budget, etc.)
  • Collaborators can ONLY edit project-related content (notes, documents, contacts, events)
  • Only the project owner can manage the project and team

πŸ“Š Analytics & Reportsorts

  • Productivity Dashboard - Detailed insights into your work
  • Time Visualization - Charts and graphs with Recharts
  • Project Distribution - Analysis of time allocation
  • Trend Analysis - Long-term productivity trends

πŸ“… Calendar

  • Event Management - Manage appointments and tasks
  • Various Event Types - Meetings, tasks, reminders
  • Month View - Clear calendar overview
  • Upcoming Events - Overview of upcoming appointments
  • Advanced Recurring Events - Complex repetition patterns
  • Flexible Repetitions - Daily, weekly, monthly, yearly
  • Special Weekdays - E.g. every 2nd Monday of the month
  • End Options - By date, count, or infinite
  • Event Sharing - Share events with team members

🎨 Modern Design

  • Dark Mode Only - Consistent dark design
  • Responsive Design - Optimized for all screen sizes
  • Tailwind CSS - Modern and consistent UI
  • Radix UI Components - High-quality, accessible components

βš™οΈ Settings

  • Profile Management - Manage personal data
  • Change Password - Secure password updates
  • Theme Settings - Personalized display
  • Data Export - Complete data export as JSON
  • Notifications - Customizable notification settings

πŸ› οΈ Technology Stack

Frontend

  • Next.js 15 - React framework with App Router
  • TypeScript - Type-safe development
  • Tailwind CSS - Utility-first CSS framework
  • Radix UI - Primitive UI components
  • Lucide React - Modern icon library
  • Recharts - Data visualization
  • date-fns - Date utilities

Backend

  • Next.js API Routes - Serverless API endpoints
  • MongoDB - NoSQL database
  • NextAuth.js - Authentication
  • bcryptjs - Password hashing

Development

  • ESLint - Code quality
  • TypeScript - Type checking
  • Turbopack - Fast development server

πŸ“¦ Installation & Setupetup

Prerequisites

  • Node.js 18.17.0 or higher
  • MongoDB (local or Atlas)
  • Git

1. Clone repository

git clone [repository-url]

cd personal_dashboard

2. Install dependencies

npm install

3. Set up environment variables

Create a .env.local file in the root directory:

# Auth.js Configuration

NEXTAUTH_URL=http://localhost:3000

NEXTAUTH_SECRET=your-secret-key-here-change-in-production


# MongoDB Configuration

MONGODB_URI=mongodb://localhost:27017/personal-dashboard


# Email Configuration (Optional - for email authentication)

EMAIL_SERVER_HOST=smtp.gmail.com

EMAIL_SERVER_PORT=587

EMAIL_SERVER_USER=[email protected]

EMAIL_SERVER_PASSWORD=your-app-password

EMAIL_FROM=[email protected]

4. Set up MongoDB

Option A: Local MongoDB Installation

  1. Install MongoDB Community Server
  2. Start MongoDB service
  3. The application will automatically create the required collections

Option B: MongoDB Atlas (Cloud)

  1. Create an account at MongoDB Atlas
  2. Create a new cluster
  3. Copy the connection string to MONGODB_URI

5. Start development server

npm run dev

The application is now available at http://localhost:3000.

πŸš€ Deployment

Vercel (Recommended)

  1. Push your code to GitHub
  2. Connect your repository with Vercel
  3. Configure environment variables in Vercel
  4. Deploy!

Other Hosting Providers

The application can be deployed on any platform that supports Next.js:

  • Netlify
  • Railway
  • Digital Ocean
  • AWS
  • Google Cloud

πŸ“š Usage

Getting Started

  1. Register via /auth/signup
  2. Sign in via /auth/signin
  3. Explore the dashboard

Time Tracking

  1. Click "Start Timer" in the dashboard
  2. Select project and task
  3. Start time tracking
  4. Stop timer when finished

CRM & Contactsacts

  1. Navigate to "CRM Notes"
  2. Add new contacts
  3. Organize with tags
  4. Create linked notes

Analytics

  1. Visit the Analytics page
  2. Select desired time period
  3. Analyze your productivity trends

πŸ”§ Configuration

Theme Customization

The theme can be customized in components/providers/theme-provider.tsx.

Database Schema

MongoDB collections are created automatically:

  • users - User accounts
  • accounts - NextAuth account links
  • sessions - Active sessions
  • timeEntries - Time tracking entries
  • contacts - CRM contacts
  • notes - Notes

API Endpoints

  • /api/auth/* - Authentication (NextAuth)
  • /api/time-entries - Time tracking CRUD
  • /api/contacts - Contacts CRUD
  • /api/notes - Notes CRUD

πŸ§ͺ Development

Code Structure

β”œβ”€β”€ app/                    # Next.js App Router
β”‚   β”œβ”€β”€ api/               # API Routes
β”‚   β”œβ”€β”€ auth/              # Authentication Pages
β”‚   β”œβ”€β”€ dashboard/         # Dashboard Pages
β”‚   └── globals.css        # Global Styles
β”œβ”€β”€ components/            # React Components
β”‚   β”œβ”€β”€ dashboard/         # Dashboard-specific Components
β”‚   β”œβ”€β”€ providers/         # Context Providers
β”‚   └── ui/                # Reusable UI Components
β”œβ”€β”€ lib/                   # Utilities and Configuration
β”‚   β”œβ”€β”€ auth.ts           # NextAuth Configuration
β”‚   β”œβ”€β”€ mongodb.ts        # MongoDB Connection
β”‚   └── utils.ts          # Utility Functions
└── public/               # Static Assets
tatic Assets

Adding New Features

  1. Create new API routes in app/api/
  2. Develop UI components in components/
  3. Add new pages in app/dashboard/
  4. Extend navigation in dashboard-layout.tsx

πŸ”’ Security

  • All passwords are hashed with bcryptjs
  • JWT-based session management
  • CSRF protection through NextAuth.js
  • Server-side input validation
  • Secure HTTP-only cookies

πŸ“ License

This project is available for personal and commercial use.

🀝 Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Create a pull request

πŸ“ž Support

Bei Fragen oder Problemen ΓΆffnen Sie bitte ein Issue im Repository.


Viel Erfolg mit Ihrem Personal Dashboard! πŸš€