GitHunt
MI

mittirr/Reflct---A-Journaling-App

A digital journal App to organize and reflect your thoughts.

Reflct

Reflct Logo

Capture Your Thoughts with Reflct

A digital journal App to organize and reflect your thoughts.

โœจ Features

Core Features

  • Easy journal entry Creation - Create beautiful customizable journal entries with a rich text editor
  • Organize with Moods - Keep your entries organized with mood tags
  • Mood Analytics - A beautiful graph to visualize your mood
  • Mood Summary - We give you a mood summary calculating the moodscore of your entries
  • Powerful Search - Find your notes instantly by thier title, mood or date of creation
  • Secure data - your entries are private and protected
  • Responsive Design - Works seamlessly on desktop and mobile devices
  • User Authentication - Secure user authentication with clerk

๐Ÿ› ๏ธ Technologies Used

  • Frontend

    • React 19
    • Next 15
    • Tailwind CSS v4
    • Zod 3
    • React Router v7
    • Lucide React (icons)
    • Arcjet
    • date-fns (date formatting)
  • Backend

    • Prisma 6
    • NeonDB
    • Clerk

๐Ÿ“‹ Prerequisites

  • Node.js (v18 or higher)
  • npm or yarn

๐Ÿš€ Installation

  1. Clone the repository

    git clone https://github.com/mittirr/Reflct---A-Journaling-App.git
    cd Reflct---A-Journaling-App
  2. Install dependencies

    npm install
    # or
    yarn
  3. Create a .env file in the root directory with your credentials

    NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY = your_clerk_publishable_key
    CLERK_SECRET_KEY = your_clerk_api_key
    
    NEXT_PUBLIC_CLERK_SIGN_IN_URL = /sign-in
    NEXT_PUBLIC_CLERK_SIGN_UP_URL = /sign-up
    
    NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL = /dashboard
    NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL = /dashboard
    
    DATABASE_URL = your_neonDB_api_key
    
    ARCJET_KEY = Your_arcjet_api_key
    
    PIXABAY_API_KEY = your_pixabay_api_key
    
  4. Start the development server

    npm run dev
    # or
    yarn dev
  5. Open your browser and navigate to http://localhost:3000

๐Ÿ—๏ธ Building for Production

npm run build
# or
yarn build

๐Ÿ“ฑ Usage

Creating a New Entry

  1. Sign in to your account
  2. Navigate to "Write New"
  3. Fill in the title, mood, content and choose a collection
  4. Click "Publish"

Searching Notes

  • Use the search bar to find notes by title, date, or mood

๐Ÿ”’ Authentication

Reflct uses Clerk for authentication. Users can:

  • Sign-in / Sign-up with email and password
  • Sign-in / Sign-up with Google
  • Edit credentials

๐Ÿงฉ Project Structure

app
โ”œโ”€โ”€ (auth)
โ”‚ โ”œโ”€โ”€ sign-in
โ”‚ โ”‚ โ””โ”€โ”€ [[...sign-in]]
โ”‚ โ”‚ โ””โ”€โ”€ page.jsx
โ”‚ โ”œโ”€โ”€ sign-up
โ”‚ โ”‚ โ””โ”€โ”€ [[...sign-up]]
โ”‚ โ”‚ โ””โ”€โ”€ page.jsx
โ”‚ โ””โ”€โ”€ layout.jsx
โ”œโ”€โ”€ (main)
โ”‚ โ”œโ”€โ”€ collection
โ”‚ โ”‚ โ”œโ”€โ”€ _components
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ delete-collection.jsx
โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ journal-filters.jsx
โ”‚ โ”‚ โ””โ”€โ”€ [collectionId]
โ”‚ โ”‚ โ”œโ”€โ”€ layout.js
โ”‚ โ”‚ โ””โ”€โ”€ page.jsx
โ”‚ โ”œโ”€โ”€ dashboard
โ”‚ โ”‚ โ”œโ”€โ”€ _components
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ analytics-loading.jsx
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ collection-preview.jsx
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ collections.jsx
โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ mood-analytics.jsx
โ”‚ โ”‚ โ””โ”€โ”€ page.jsx
โ”‚ โ”œโ”€โ”€ journal
โ”‚ โ”‚ โ”œโ”€โ”€ [id]
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ _components
โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ delete-dialog.jsx
โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ edit-button.jsx
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ layout.jsx
โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ page.jsx
โ”‚ โ”‚ โ””โ”€โ”€ write
โ”‚ โ”‚ โ”œโ”€โ”€ layout.js
โ”‚ โ”‚ โ””โ”€โ”€ page.jsx
โ”‚ โ””โ”€โ”€ layout.js
โ”œโ”€โ”€ lib
โ”‚ โ”œโ”€โ”€ moods.js
โ”‚ โ””โ”€โ”€ schema.js
โ”œโ”€โ”€ globals.css
โ”œโ”€โ”€ layout.js
โ”œโ”€โ”€ not-found.jsx
โ””โ”€โ”€ page.js

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

๐Ÿ“„ License

This project is licensed under the terms of the license included in the repository.

๐Ÿ™ Acknowledgements