Skip to content

About

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Ticky - The Ultimate Tic-Tac-Toe Arena

Ticky is a premium, real-time multiplayer Tic-Tac-Toe application designed for competitive play and tactical training. Built with modern web technologies, it offers a seamless and high-performance gaming experience.

✨ Key Features

  • Real-Time Multiplayer: Challenge players worldwide with instant matchmaking and private game rooms.
  • Infinite Mode: A tactical twist where pieces fade and vanish after 3 moves, requiring deep planning.
  • Training Ground: Hone your skills against an AI with multiple difficulty levels.
  • Global Chat: Direct messaging and match invitations within the app.
  • Leaderboard: Compete for XP and climb the global ranks.
  • Dynamic Themes: Sleek dark and light modes with glassmorphism aesthetics.
  • Offline-First PWA: Installable app experience with full offline support for Training Mode and iOS-specific setup guidance.
  • Advanced Chat Features: Real-time typing indicators, visual read receipts (checkmarks), and direct matchmaking within the chat interface.
  • Network Awareness: Real-time connection monitoring with an in-app offline indicator.
  • Ambient Music: Immersive background audio system that intelligently manages playback.

📂 Project Structure

  • src/context.jsx: Central nervous system; manages global state, socket events, and network status.
  • src/page/chat/chat.jsx: Advanced real-time messaging interface with typing indicators and read states.
  • src/page/game/game.jsx: Core match engine for live multiplayer sessions, featuring in-game chat.
  • src/page/training/TrainingGame.jsx: Local AI match engine (fully functional offline).
  • src/page/home/home.jsx: The command center for matchmaking, game creation, and quick training access.
  • src/page/profile/profile.jsx: User identity hub with matchmaking triggers and game history.
  • src/components/InstallModal.jsx: Custom UI for PWA installation prompts with cross-platform (Android/iOS) logic.
  • src/header/header.jsx: Global navigation, persistent audio controls, and offline alerts.
  • socket.js: Socket.IO client configuration and singleton instance.

🚀 Tech Stack

  • Frontend: React, Vite, Framer Motion (Animations), Tailwind CSS (Layout), Lucide-React (Icons)
  • State Management: React Context API
  • Real-Time: Socket.IO
  • PWA Integration: vite-plugin-pwa for service worker management and asset precaching.

🛠️ Getting Started

  1. Clone & Install:
    npm install
  2. Environment Setup: Ensure .env.local is configured with VITE_SERVER_URL.
  3. Run Dev:
    npm run dev

✅ Verification Checklist (Post-Cleanup)

  • Log Purge: Zero console.log statements in production files.
  • PWA Integrity: Validated manifest.json and service worker precaching.
  • Offline Resilience: Verified AI Training logic and UI indicators work without connection.
  • Match Sync: Match invitation flow is unified across Users and Profile pages.
  • Performance: Component stability verified with stable callbacks and memoized state.

🔮 Suggested Next Level Improvements

  1. TypeScript Migration: Introduce type safety across the match engine and socket events.
  2. Persistence Layer: Implement IndexedDB (via idb or Dexie) for persistent match history caching even when offline.
  3. Advanced AI: Integrate more sophisticated algorithms or weight-based moves for the Training Mode.
  4. Social Features: Add "Add Friend" functionality and persistent friend status tracking.

About

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages