Skip to content

JerHowden/sapdoku

Repository files navigation

Next.js TypeScript Tailwind CSS License: MIT

🦥 Sapdoku

Sapdoku is a daily game based on Super Auto Pets. The goal is to fill in the grid with pets that satisfy its row and column requirements. Don't forget to share your score with friends when you finish!

Play now at sapdoku.com

📋 Table of Contents

✨ Features

  • Daily puzzles based on Super Auto Pets
  • Search and filter for all pets in the pets database
  • Responsive design so you can play on any device
  • Share completed games and compete with your friends
  • Play games from the past you missed out on

🗺️ Roadmap

  • Gamemodes
    • Reverse gamemode: guess the categories from the pets
    • Pack specific: only use and only need pets from one pack
  • Difficulty
    • Easy: Allow one reguess (yellow/orange border) if one req satisfied
    • Normal: Implemented
    • Hard: Must get a perfect board or lose (pokedoku style)
  • Performance
    • Virtualize the pets page
    • Proper skeleton components while loading
  • Account Creation
    • Link your email address to save scores and data
  • Data Visualization
    • See your most used pets
    • See the community's most common board
  • Pets Version History
    • As pets are adjusted, ensure past game results stay consistent
  • Technical Improvements
    • Add redux, zustand, or valtio
    • Upload user data to postgres

🚀 Running Locally

Prerequisites

  • Node.js (v14 or later)
  • npm or yarn

Installation

  1. Clone the repository:
 git clone https://github.com/yourusername/sapdoku.git
 cd sapdoku
  1. Install dependencies:
 npm install

 # or

 yarn install
  1. Start the development server:
 npm run dev

 # or

 yarn dev
  1. Open http://localhost:3000 with your browser to see the result.

🎮 How to Play

  • Visit sapdoku.com daily to play the new puzzle
  • Guess pet combinations based on the given criteria
  • Share your results with friends

🏗️ Project Structure

  • src/: Contains the main application code
    • app/: Main layout and pages
    • assets/: Fonts
    • components/: Reusable shadcn UI components
    • db/: Data-related files (constants, types, models)
    • lib/: Utility functions and custom hooks
    • modules/: Specific application modules
  • public/: Static assets

🤝 Contributing

We welcome contributions to Sapdoku! Here's how you can help:

Adding New Pets

  1. Navigate to src/db/pets.ts
  2. Follow the existing structure shown here:
export const PETS_LIST = [
  {
    name: 'Ant',
    imageSrc: 'https://superautopets.wiki.gg/images/5/56/Ant.png',
    pack: ['Turtle Pack'],
    tier: 1,
    attack: 2,
    health: 2,
    abilityTrigger: 'Faint',
    tags: ['Faint'],
  },
  // ... existing pets
  {
    name: 'New Pet Name',
    imageSrc: 'image link',
    pack: ['Example Pack'], // include all relevant packs
    tier: 1 - 6, // Adjust as needed
    attack: 1 - 16, // Level 1 attack
    health: 1 - 16, // Level 1 health
    ability: 'Ability Trigger in Bold', // may need to be added to ABILITY_TRIGGERS_LIST in src/db/constants.ts
    tags: [], // tags come from SAP create custom pack
  },
  // ...
] as const;
  1. Create an issue or pull request with the Pet Data tag

Updating Pet Stats

  1. Locate the pet in src/db/pets.ts
  2. Update the relevant properties (attack, health, ability, etc.)
  3. Create an issue or pull request with the Pet Data tag

📄 License

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


About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages