anime-tracker

๐ŸŽŒ AnimeTracker Pro

A modern, full-stack anime tracking application built with React and Supabase, featuring real-time data synchronization, advanced filtering, and a beautiful responsive UI.

React Supabase Tailwind CSS TypeScript License

Production Ready Deployed on GitHub Pages Testing

โœจ Features

๐ŸŽฏ Core Functionality

๐ŸŽจ User Experience

๐Ÿ”ง Technical Excellence

๐Ÿš€ Live Demo

View Live Application

๐Ÿ› ๏ธ Tech Stack

Frontend

Backend & Data

Development & Testing

๐Ÿ“ฆ Installation

Prerequisites

Setup

  1. Clone the repository
    git clone https://github.com/yourusername/anime-tracker.git
    cd anime-tracker
    
  2. Install dependencies
    npm install
    
  3. Environment Configuration
    cp .env.example .env
    

    Fill in your Supabase credentials:

    REACT_APP_SUPABASE_URL=your_supabase_url
    REACT_APP_SUPABASE_ANON_KEY=your_supabase_anon_key
    
  4. Start development server
    npm start
    
  5. Open your browser Navigate to http://localhost:3000

๐Ÿงช Testing

# Run tests in watch mode
npm test

# Run tests with coverage
npm run test:coverage

# Run tests in CI mode
npm run test:ci

๐Ÿ—๏ธ Project Structure

src/
โ”œโ”€โ”€ components/          # Reusable UI components
โ”‚   โ”œโ”€โ”€ ActivityGraph.js # User activity visualization
โ”‚   โ”œโ”€โ”€ AnimeCard.js     # Anime display component
โ”‚   โ”œโ”€โ”€ ImageCropper.js  # Image editing functionality
โ”‚   โ”œโ”€โ”€ Navbar.js        # Navigation component
โ”‚   โ””โ”€โ”€ Toast.js         # Notification system
โ”œโ”€โ”€ context/             # React Context providers
โ”‚   โ””โ”€โ”€ AuthContext.js   # Authentication state management
โ”œโ”€โ”€ pages/               # Route components
โ”‚   โ”œโ”€โ”€ DashboardPage.js # Main dashboard
โ”‚   โ”œโ”€โ”€ ProfilePage.js   # User profile management
โ”‚   โ”œโ”€โ”€ SearchPage.js    # Anime search interface
โ”‚   โ””โ”€โ”€ SettingsPage.js  # User settings
โ”œโ”€โ”€ services/            # API and external services
โ”‚   โ”œโ”€โ”€ supabase.js      # Supabase client configuration
โ”‚   โ””โ”€โ”€ userService.js   # User-related API calls
โ””โ”€โ”€ utils/               # Utility functions
    โ”œโ”€โ”€ animeUtils.js    # Anime data processing
    โ””โ”€โ”€ imageUtils.js    # Image handling utilities

๐Ÿ”‘ Key Features Deep Dive

Real-time Data Synchronization

The app uses Supabaseโ€™s real-time subscriptions to keep user data synchronized across sessions and devices. Changes to watchlists, ratings, and progress are immediately reflected in the UI.

Optimistic UI Updates

Implemented optimistic updates for better user experience - UI changes are applied immediately while API calls happen in the background. Failed operations automatically rollback with user notification.

Advanced Filtering System

Multi-criteria filtering including:

Image Management

Built-in image cropping and optimization:

๐Ÿš€ Deployment

The application is automatically deployed to GitHub Pages on every push to the main branch.

# Build for production
npm run build

# Deploy to GitHub Pages
npm run deploy

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

๐Ÿ“ž Contact


Made with โค๏ธ by Christian Ian

If you find this project helpful, please give it a โญ๏ธ

Environment Variables

Copy .env.example to .env and fill in your Supabase credentials:

REACT_APP_SUPABASE_URL=โ€ฆ REACT_APP_SUPABASE_ANON_KEY=โ€ฆ