Skip to content

Ahmad-Softwaree/learning_tracker

Repository files navigation

πŸ“š Learning Tracker

A modern, feature-rich web application to track and manage your learning journey. Built with the latest technologies, Learning Tracker helps you organize courses, books, tutorials, and more while visualizing your progress through beautiful analytics and insights.

Next.js TypeScript Tailwind CSS License

✨ Features

πŸ“š Learning Management

  • πŸ“Š Learning Dashboard - View all your learning activities in one beautiful, organized dashboard
  • βž• Add Learning Entries - Easily log courses, books, tutorials, videos, and more
  • πŸ“ˆ Insights & Analytics - Visualize your learning progress with beautiful charts and graphs
  • πŸ” Advanced Filtering - Filter and search through your learning entries with ease
  • πŸ“… Progress Tracking - Track weekly progress and completion status

πŸ” Authentication & Security

  • πŸ”’ Secure Authentication - NextAuth.js (Auth.js v5) with credential-based authentication
  • πŸ”‘ Password Management - Secure password reset via email with token-based verification
  • πŸ›‘οΈ Two-Factor Authentication (2FA) - Enhanced security with TOTP-based 2FA using authenticator apps
  • πŸ‘€ Profile Management - Update your profile information and change passwords
  • πŸ” Protected Routes - Middleware-based route protection for authenticated pages

🌐 User Experience

  • 🌍 Multi-language Support - Available in English, Arabic, and Kurdish (CKB) with full RTL support
  • 🎨 Modern UI - Built with shadcn/ui components and Tailwind CSS 4
  • πŸŒ“ Dark/Light Mode - Seamless theme switching with next-themes
  • πŸ“± Responsive Design - Works perfectly on desktop, tablet, and mobile devices
  • ⚑ Fast Performance - Server-side rendering and optimized builds with Next.js 15

πŸš€ Tech Stack

Core

UI & Styling

Authentication & Security

Database & ORM

State & Data Management

Internationalization

  • i18n Framework: i18next
  • React Integration: react-i18next
  • Supported Languages: English, Arabic, Kurdish (CKB)

πŸ“‹ Prerequisites

πŸ› οΈ Installation

  1. Clone the repository

    git clone https://github.com/Ahmad-Softwaree/learning_tracker.git
    cd learning_tracker
  2. Install dependencies

    bun install
  3. Set up environment variables

    # Create a .env file in the root directory
    # Add your environment variables (see .env.example)
  4. Run the development server

    bun dev
  5. Open your browser Navigate to http://localhost:3000

πŸ“ Project Structure

learning_tracker/
β”œβ”€β”€ app/                      # Next.js app directory
β”‚   β”œβ”€β”€ globals.css          # Global styles with Tailwind CSS 4
β”‚   β”œβ”€β”€ layout.tsx           # Root layout
β”‚   β”œβ”€β”€ page.tsx             # Home page
β”‚   └── providers.tsx        # Context providers
β”œβ”€β”€ components/              # React components
β”‚   β”œβ”€β”€ layouts/            # Layout components (Header, Footer)
β”‚   β”œβ”€β”€ sections/           # Page sections (Hero, Features, etc.)
β”‚   β”œβ”€β”€ shared/             # Shared/reusable components
β”‚   └── ui/                 # shadcn/ui components
β”œβ”€β”€ i18n/                   # Internationalization
β”‚   β”œβ”€β”€ locales/           # Translation files (en, ar, ckb)
β”‚   └── i18n.ts            # i18next configuration
β”œβ”€β”€ lib/                    # Utility functions and configs
β”œβ”€β”€ hooks/                  # Custom React hooks
β”œβ”€β”€ types/                  # TypeScript type definitions
└── public/                 # Static assets

πŸ” Authentication Features

User Authentication

  • Secure Login/Logout - Credential-based authentication with session management
  • User Registration - Create new accounts with email and password
  • Session Handling - Persistent sessions with automatic refresh

Password Management

  • Password Reset - Email-based password reset with secure tokens
  • Token Expiration - Reset tokens expire after 1 hour for security
  • Change Password - Authenticated users can update their passwords
  • Password Validation - Strong password requirements with confirmation

Two-Factor Authentication (2FA)

  • TOTP-Based 2FA - Time-based One-Time Password using authenticator apps
  • QR Code Setup - Easy setup by scanning QR code with Google Authenticator, Authy, etc.
  • OTP Verification - 6-digit code verification during setup and login
  • Login with 2FA - Additional security layer for users with 2FA enabled
  • Enable/Disable - Users can manage 2FA settings from their profile

Profile Management

  • Update Profile - Change name and email address
  • Profile Security - Password confirmation required for sensitive changes
  • 2FA Settings Card - Dedicated UI for managing two-factor authentication

🌐 Internationalization

Learning Tracker supports three languages:

  • English (en) - Left-to-right (LTR)
  • Arabic (ar) - Right-to-left (RTL)
  • Kurdish (ckb) - Right-to-left (RTL)

All UI text, including authentication flows and error messages, is fully internationalized and can be easily extended with additional languages.

🎨 Customization

Color Scheme

The project uses a modern teal/cyan color scheme defined in globals.css. You can customize the colors by modifying the CSS variables in the :root and .dark selectors.

Adding New Sections

Follow the component organization guidelines in docs/component-organization.md.

πŸ“š Documentation

🀝 Contributing

Contributions are welcome! Please read the AGENTS.md file for coding standards and architecture patterns.

πŸ“„ License

This project is licensed under the MIT License.

πŸ‘¨β€πŸ’» Developer

Ahmad Softwaree

πŸ™ Acknowledgments

Releases

No releases published

Packages

No packages published