{"id":30363826,"url":"https://github.com/robleto/meeplego","last_synced_at":"2025-08-19T19:51:56.851Z","repository":{"id":308828207,"uuid":"1033884800","full_name":"robleto/MeepleGo","owner":"robleto","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-08T04:58:37.000Z","size":165,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-08T06:32:40.573Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robleto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-07T13:51:24.000Z","updated_at":"2025-08-08T04:58:41.000Z","dependencies_parsed_at":"2025-08-08T06:32:46.104Z","dependency_job_id":"954509c9-3908-4d17-b061-16734abe6791","html_url":"https://github.com/robleto/MeepleGo","commit_stats":null,"previous_names":["robleto/meeplego"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/robleto/MeepleGo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robleto%2FMeepleGo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robleto%2FMeepleGo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robleto%2FMeepleGo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robleto%2FMeepleGo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robleto","download_url":"https://codeload.github.com/robleto/MeepleGo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robleto%2FMeepleGo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271213839,"owners_count":24720078,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-19T02:00:09.176Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-19T19:51:55.647Z","updated_at":"2025-08-19T19:51:56.762Z","avatar_url":"https://github.com/robleto.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MeepleGo\n\nA comprehensive board game collection manager built with Next.js, TypeScript, Tailwind CSS, and Supabase.\n\n## 📂 Project Organization\n\n- **`/src/`** - Next.js application source code\n- **`/supabase/`** - Database schema and edge functions\n- **`/scripts/`** - Utility scripts organized by purpose\n  - `database/` - Database utilities and migrations\n  - `bgg-testing/` - BoardGameGeek API testing tools\n  - `archive/` - Old scripts kept for reference\n- **`/docs/`** - Project documentation\n- **`run-bgg-import.sh`** - Main BGG import script\n\n## Features\n\n### 🏠 **Home Dashboard**\n- Quick overview of your collection statistics\n- Easy access to all main features\n- Getting started guide for new users\n\n### 🏆 **Awards System**\n- Create yearly awards with custom categories\n- Drag-and-drop nomination and winner selection\n- Track your \"Best Of\" games by year\n- Default categories: Best Game, Best Strategy, Best Party Game, etc.\n\n### 📊 **Rankings \u0026 Ratings**\n- Rate games from 1-10 with color-coded system\n- Track \"Played It\" status for your collection\n- Personal ranking leaderboard\n- Detailed rating statistics and insights\n\n### 🎲 **Games Collection**\n- Grid and list view modes\n- Advanced filtering and search\n- Hover actions for quick rating and status updates\n- Detailed game information with BGG integration\n\n### 📝 **Custom Lists**\n- Create unlimited custom lists (e.g., \"Top 10 Party Games\")\n- Reorder games with drag-and-drop\n- Add personal notes and custom organization\n- Share lists with friends\n\n### 👤 **Profile Management**\n- Personal gaming statistics\n- Customizable preferences\n- Privacy controls\n- Collection insights\n\n## Tech Stack\n\n- **Frontend**: Next.js 15 with App Router, TypeScript\n- **Styling**: Tailwind CSS v3.4 with custom design system\n- **Database**: Supabase (PostgreSQL) with Row Level Security\n- **Authentication**: Supabase Auth\n- **Animations**: GSAP\n- **Drag \u0026 Drop**: @dnd-kit\n- **Icons**: Heroicons\n- **Code Quality**: ESLint, Prettier\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 18+ \n- npm or yarn\n- Supabase account\n\n### 1. Clone and Install\n\n```bash\n# Clone the repository\ngit clone \u003cyour-repo-url\u003e\ncd MeepleGo\n\n# Install dependencies\nnpm install\n```\n\n### 2. Environment Setup\n\nCreate a `.env.local` file in the root directory:\n\n```env\n# Supabase Configuration\nNEXT_PUBLIC_SUPABASE_URL=https://YOUR_PROJECT_REF.supabase.co\nNEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key_here\nSUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key_here\n\n# App Configuration\nNEXT_PUBLIC_APP_URL=http://localhost:3000\n\n# BGG API (optional, for game data import)\nBGG_API_BASE_URL=https://boardgamegeek.com/xmlapi2\n```\n\n### 3. Database Setup\n\n1. Go to your Supabase project dashboard\n2. Navigate to the SQL Editor\n3. Run the contents of `supabase-schema.sql` to create the database schema\n4. The schema includes:\n   - Tables: games, profiles, rankings, lists, list_items, awards\n   - Row Level Security policies\n   - Sample data for development\n   - Proper indexes for performance\n\n### 4. Development\n\n```bash\n# Start the development server\nnpm run dev\n\n# Open http://localhost:3000 in your browser\n```\n\n### 5. Code Quality\n\n```bash\n# Run linting\nnpm run lint\n\n# Fix linting issues\nnpm run lint:fix\n\n# Format code\nnpm run format\n\n# Type checking\nnpm run type-check\n```\n\n## Project Structure\n\n```\nsrc/\n├── app/                    # Next.js App Router pages\n│   ├── globals.css        # Global styles with Tailwind\n│   ├── layout.tsx         # Root layout\n│   ├── page.tsx           # Home page\n│   ├── games/             # Games collection page\n│   ├── rankings/          # Rankings page\n│   ├── awards/            # Awards page\n│   ├── lists/             # Lists page\n│   ├── add/               # Add game page\n│   ├── search/            # Search page\n│   └── profile/           # Profile page\n├── components/            # Reusable React components\n│   ├── Navigation.tsx     # Main navigation\n│   ├── PageLayout.tsx     # Page wrapper\n│   ├── GameCard.tsx       # Game display component\n│   └── GameFilters.tsx    # Filtering component\n├── lib/                   # Utility libraries\n│   └── supabase.ts        # Supabase client setup\n├── types/                 # TypeScript type definitions\n│   ├── supabase.ts        # Database types\n│   └── index.ts           # App-specific types\n└── utils/                 # Utility functions\n    └── helpers.ts         # Common helper functions\n```\n\n## Database Schema\n\n### Tables\n\n- **games**: Master list of all board games\n- **profiles**: User profiles and preferences  \n- **rankings**: User ratings and played status for games\n- **lists**: User-created custom lists\n- **list_items**: Games within lists with notes and ordering\n- **awards**: Yearly awards with nominations and winners\n\n### Key Features\n\n- Row Level Security (RLS) for data privacy\n- Automatic timestamp updates\n- Optimized indexes for performance\n- Sample data included for development\n\n## Deployment\n\n### Vercel (Recommended)\n\n1. Push your code to GitHub\n2. Connect your repository to Vercel\n3. Add environment variables in Vercel dashboard\n4. Deploy automatically on push\n\n### Manual Deployment\n\n```bash\n# Build the application\nnpm run build\n\n# Start production server\nnpm start\n```\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Run tests and linting\n5. Submit a pull request\n\n## Roadmap\n\n- [ ] BoardGameGeek API integration for game data\n- [ ] Advanced search and filtering\n- [ ] Drag-and-drop for awards and lists\n- [ ] Social features (friends, sharing)\n- [ ] Mobile app (React Native)\n- [ ] Statistics and analytics dashboard\n- [ ] Import/export functionality\n- [ ] Game recommendations\n- [ ] Collection value tracking\n\n## License\n\nMIT License - see LICENSE file for details.\n\n## Support\n\nFor questions and support, please open an issue on GitHub.\n\n---\n\nBuilt with ❤️ by Greg Robleto\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobleto%2Fmeeplego","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobleto%2Fmeeplego","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobleto%2Fmeeplego/lists"}