Skip to content

MUMEi-28/inspo-log

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

17 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌟 InspoLog

Collect your daily spark!

A modern, beautiful web application for saving, exploring, and journaling inspirational quotes, thoughts, and life lessons.

Next.js Β  React Β  TypeScript Β  Tailwind CSS Β  Shadcn UI Β  Framer Motion Β  Lucide React


πŸ“Έ Screenshots

🏠 Home Page - Quote of the Day

Beautiful, minimalist design with daily inspiration

image

πŸ” Explore Quotes - Browse & Discover

Paginated collection of inspiring quotes from various authors

image

πŸ“– Personal Journal - Your Saved Quotes

Manage your personal collection of favorite quotes

image

✨ Add New Entry - Create Your Own

Add custom quotes, thoughts, and tag them for organization

image

πŸŒ™ Dark Mode Support

Beautiful dark/light theme with smooth transitions

image image

πŸ“± Mobile Responsive

Optimized for all device sizes

image

✨ Features

Core Functionality

  • 🎯 Quote of the Day: Fresh, random inspirational quote every day
  • πŸ” Explore Quotes: Browse through extensive collection with pagination
  • πŸ’Ύ Personal Journal: Save favorite quotes to your personal collection
  • βž• Custom Entries: Add your own quotes, thoughts, and wisdom
  • 🏷️ Smart Tagging: Organize entries with customizable tags
  • πŸ—‘οΈ Delete & Undo: Remove entries with convenient undo functionality
  • πŸ”„ Real-time Sync: All changes saved to browser localStorage

User Experience

  • 🎨 Dark/Light Mode: Beautiful theme switching with system preference support
  • πŸ“± Fully Responsive: Perfect experience on desktop, tablet, and mobile
  • 🎭 Smooth Animations: Powered by Framer Motion for delightful interactions
  • πŸ”” Toast Notifications: Friendly feedback for all user actions
  • ⚑ Fast Performance: Optimized with Next.js App Router and Turbopack
  • β™Ώ Accessibility: Built with Radix UI for excellent accessibility support

πŸ› οΈ Tech Stack

Frontend Framework

Styling & UI

Animation & Interaction

Utilities & Tools

Development Tools

Prototype


πŸ“¦ Dependencies

Core Dependencies

{
  "next": "15.4.2",
  "react": "19.1.0",
  "react-dom": "19.1.0",
  "typescript": "^5"
}

UI & Styling

{
  "@radix-ui/react-dialog": "^1.1.14",
  "@radix-ui/react-popover": "^1.1.14",
  "@radix-ui/react-separator": "^1.1.7",
  "@radix-ui/react-slot": "^1.2.3",
  "tailwindcss": "^4",
  "class-variance-authority": "^0.7.1",
  "clsx": "^2.1.1",
  "tailwind-merge": "^3.3.1"
}

Animation & Interaction

{
  "framer-motion": "^12.23.9",
  "cmdk": "^1.1.1"
}

Icons & Notifications

{
  "lucide-react": "^0.525.0",
  "sonner": "^2.0.6"
}

Theme & Utilities

{
  "next-themes": "^0.2.1"
}

πŸ—οΈ Project Structure

inspo-log/
β”œβ”€β”€ πŸ“ src/
β”‚   β”œβ”€β”€ πŸ“ app/                    # Next.js App Router
β”‚   β”‚   β”œβ”€β”€ πŸ“ api/               # API Routes
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ explore/       # Explore quotes endpoint
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ new/           # Add new quote endpoint  
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ quote/         # Quote of the day endpoint
β”‚   β”‚   β”‚   └── route.ts          # Main API route
β”‚   β”‚   β”œβ”€β”€ πŸ“ explore/           # Explore page
β”‚   β”‚   β”œβ”€β”€ πŸ“ journals/          # Journal pages
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ new/          # Add new entry page
β”‚   β”‚   β”‚   └── page.tsx         # Main journal page
β”‚   β”‚   β”œβ”€β”€ favicon.ico           # App icon
β”‚   β”‚   β”œβ”€β”€ globals.css           # Global styles
β”‚   β”‚   β”œβ”€β”€ layout.tsx            # Root layout
β”‚   β”‚   └── page.tsx              # Home page
β”‚   β”œβ”€β”€ πŸ“ components/            # React Components
β”‚   β”‚   β”œβ”€β”€ πŸ“ ui/               # shadcn/ui components
β”‚   β”‚   β”œβ”€β”€ ModeToggle.tsx       # Theme switcher
β”‚   β”‚   β”œβ”€β”€ PageHeader.tsx       # Navigation header
β”‚   β”‚   β”œβ”€β”€ QuoteListFetcher.tsx # Quote list component
β”‚   β”‚   β”œβ”€β”€ RandomQuoteFetcher.tsx # Random quote component
β”‚   β”‚   └── theme-provider.tsx   # Theme context
β”‚   β”œβ”€β”€ πŸ“ lib/                  # Utilities
β”‚   β”‚   └── utils.ts             # Helper functions
β”‚   └── πŸ“ types/                # TypeScript types
β”‚       └── quotes.ts            # Quote interfaces
β”œβ”€β”€ πŸ“ public/                   # Static assets
β”œβ”€β”€ πŸ“ docs/                     # Documentation
β”œβ”€β”€ πŸ“ screenshots/              # App screenshots
β”œβ”€β”€ components.json              # shadcn/ui config
β”œβ”€β”€ next.config.ts              # Next.js config
β”œβ”€β”€ package.json                # Dependencies
β”œβ”€β”€ postcss.config.mjs          # PostCSS config
β”œβ”€β”€ tailwind.config.js          # Tailwind config
└── tsconfig.json               # TypeScript config

πŸš€ Getting Started

Prerequisites

  • Node.js 18.17 or later
  • npm, yarn, pnpm, or bun

Installation

  1. Clone the repository

    git clone https://github.com/MUMEi-28/inspo-log.git
    cd inspo-log
  2. Install dependencies

    npm install
    # or
    yarn install
    # or
    pnpm install
    # or
    bun install
  3. Start the development server

    npm run dev
    # or
    yarn dev
    # or
    pnpm dev
    # or
    bun dev
  4. Open your browser Navigate to http://localhost:3000

Available Scripts

# Development with Turbopack (fastest)
npm run dev

# Build for production
npm run build

# Start production server
npm run start

# Lint codebase
npm run lint

πŸ“Š Data Models

Quote

interface ZenQuote {
  id?: number;
  q: string;  // Quote text
  a: string;  // Author name
}

Saved Quote

interface SavedQuote {
  id: number;
  q: string;  // Quote text
  a: string;  // Author name
}

🌐 API Endpoints

Endpoint Method Description Response
/api/ GET Random quotes for home page 6 random quotes
/api/explore GET All quotes for exploration Complete quote collection
/api/quote GET Quote of the day Single daily quote
/api/new POST Add new quote (WIP) Success/Error status

External API

  • ZenQuotes.io - Inspirational quotes API
  • Rate Limiting: Handled gracefully with fallbacks
  • Caching: Browser-level caching for performance

πŸ“ˆ Roadmap

Upcoming Features

  • User Authentication - Save quotes across devices
  • Quote Categories - Filter by topics and themes
  • Search Functionality - Search through saved quotes
  • Export Options - PDF, JSON, and other formats
  • Quote Sharing - Share favorite quotes on social media
  • Mobile App - React Native mobile application
  • Offline Support - PWA with offline capabilities
  • Advanced Filtering - Filter by author, date, tags
  • Quote Analytics - Insights into your reading habits
  • Community Features - Share and discover user quotes

Technical Improvements

  • Database Integration - Move from localStorage to database
  • API Rate Limiting - Implement proper rate limiting
  • Performance Monitoring - Add analytics and monitoring
  • Testing Suite - Comprehensive test coverage
  • CI/CD Pipeline - Automated testing and deployment
  • Docker Support - Containerization for deployment

πŸ› Known Issues

  • Custom quote creation currently uses localStorage only
  • Theme transitions may flicker on initial load
  • Mobile keyboard may overlap input fields on some devices

πŸ™ Acknowledgments

APIs & Services

Open Source Libraries

Inspiration

  • Quotes Community - For the wisdom and inspiration
  • Open Source Community - For the tools and knowledge

πŸ’‘ Save the moments, words, and wisdom that inspire you. One quote at a time.

Built with ❀️ by the InspoLog Team

⭐ Star this repo β€’ πŸ› Report Bug β€’ πŸš€ Request Feature