{"id":26551198,"url":"https://github.com/akibaat/fvn.li","last_synced_at":"2026-04-11T12:42:07.034Z","repository":{"id":225915511,"uuid":"767231770","full_name":"AkibaAT/fvn.li","owner":"AkibaAT","description":"A Laravel-based web application that tracks, analyzes, and provides insights into visual novels published on itch.io. Features include game version tracking, dialogue analysis, character statistics, community ratings, and Discord integration for game updates.","archived":false,"fork":false,"pushed_at":"2026-04-05T12:48:07.000Z","size":28061,"stargazers_count":8,"open_issues_count":7,"forks_count":2,"subscribers_count":1,"default_branch":"development","last_synced_at":"2026-04-05T14:29:57.829Z","etag":null,"topics":["api","data-visualization","dialogue-analysis","discord-bot","docker","game-analytics","itch-io","laravel","livewire","php","postgresql","rating-system","tailwind-css","typescript","visual-novel"],"latest_commit_sha":null,"homepage":"https://fvn.li","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AkibaAT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-03-04T23:31:21.000Z","updated_at":"2026-04-05T12:48:15.000Z","dependencies_parsed_at":"2024-03-12T00:36:52.341Z","dependency_job_id":"340f8143-bcf3-4eba-9a79-d6af2fce877d","html_url":"https://github.com/AkibaAT/fvn.li","commit_stats":null,"previous_names":["akibaat/itch-web","akibaat/fvn.li"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AkibaAT/fvn.li","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkibaAT%2Ffvn.li","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkibaAT%2Ffvn.li/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkibaAT%2Ffvn.li/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkibaAT%2Ffvn.li/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AkibaAT","download_url":"https://codeload.github.com/AkibaAT/fvn.li/tar.gz/refs/heads/development","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkibaAT%2Ffvn.li/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31681201,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T08:18:19.405Z","status":"ssl_error","status_checked_at":"2026-04-11T08:17:08.892Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["api","data-visualization","dialogue-analysis","discord-bot","docker","game-analytics","itch-io","laravel","livewire","php","postgresql","rating-system","tailwind-css","typescript","visual-novel"],"created_at":"2025-03-22T07:53:53.745Z","updated_at":"2026-04-11T12:42:07.029Z","avatar_url":"https://github.com/AkibaAT.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FVN.li - Visual Novel Analytics and Tracking\n\n[![Deploy Writerside Documentation](https://github.com/AkibaAT/fvn.li/actions/workflows/deploy-docs.yml/badge.svg)](https://github.com/AkibaAT/fvn.li/actions/workflows/deploy-docs.yml)\n\nFVN.li is a web application that tracks, analyzes, and provides insights into games published on itch.io. It collects\ndata about games, their versions, ratings, and dialogue content, making it easier for users to discover and evaluate\ngames on the platform. The project is deployed and accessible at [FVN.li](https://fvn.li).\n\n## Documentation\n\n📚 **[View Documentation](https://akibaat.github.io/fvn.li/)** - Comprehensive documentation built with Writerside and\ndeployed to GitHub Pages.\n\n## Features\n\n- **Game Tracking**: Monitor games published on itch.io, including metadata, versions, and ratings\n- **Dialogue Browser**: Explore game dialogue content across different versions and languages\n- **Rating System**: View and analyze game ratings from the community\n- **Language Support**: Track supported languages for games and analyze translation coverage\n- **Character Statistics**: View character statistics and dialogue distribution\n- **Discord Bot Integration**: Get notified about game updates via Discord\n\n## Tech Stack\n\n- **Backend**: Laravel 12 with PHP 8.4\n- **Frontend**: React 19 with TypeScript, Inertia.js 2.x, Tailwind CSS 4\n- **Build Tool**: Vite 7 with SSR support\n- **Database**: PostgreSQL 17\n- **Search**: Meilisearch for full-text search\n- **Caching**: Redis\n- **Development**: DDEV for local development environment\n- **Visualization**: Chart.js for data visualization\n- **Testing**: Playwright for E2E and accessibility testing\n- **Deployment**: Docker for containerized deployment\n- **API**: RESTful API endpoints for Discord bot integration\n\nFor detailed architecture information, see the [Frontend Architecture](https://akibaat.github.io/fvn.li/frontend-architecture.html) documentation.\n\n## Getting Started\n\n### Prerequisites\n\n- [Docker](https://www.docker.com/get-started)\n- [DDEV](https://ddev.readthedocs.io/en/stable/)\n- [Composer](https://getcomposer.org/)\n- [Bun](https://bun.sh/)\n\n### Local Development Setup\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/AkibaAT/fvn.li.git\n   cd fvn.li\n   ```\n\n2. Start the DDEV environment:\n   ```bash\n   ddev start\n   ```\n\n3. Install PHP dependencies:\n   ```bash\n   ddev composer install\n   ```\n\n4. Install JavaScript dependencies:\n   ```bash\n   ddev bun install\n   ```\n\n5. Copy the environment file and generate an application key:\n   ```bash\n   cp .env.example .env\n   ddev artisan key:generate\n   ```\n\n6. Run database migrations:\n   ```bash\n   ddev artisan migrate\n   ```\n\n7. Start the Vite development server:\n   ```bash\n   ddev bun dev\n   ```\n\n8. Access the application at [https://fvn-li.ddev.site](https://fvn-li.ddev.site)\n\nFor more detailed development instructions, see the [Development Guide](https://akibaat.github.io/fvn.li/development-guide.html).\n\n## Database Structure\n\nThe application uses several key models:\n\n- **Game**: Core game information from itch.io\n- **GameVersion**: Tracks different versions of games\n- **Rater**: Users who rate games\n- **Rating**: Individual ratings for games\n- **DialogueLine**: Game dialogue content\n- **Character**: Characters in games\n- **Language**: Supported languages for games\n- **DiscordUser**: Discord users subscribed to game updates\n\n## Docker Deployment\n\nThe application can be deployed using Docker in production environments:\n\n1. Configure environment variables in `.env`\n2. Use the provided `docker-compose.yml` to start the application:\n   ```bash\n   docker compose up -d\n   ```\n\nThis will start the following containers:\n\n- Web application (Laravel)\n- PostgreSQL database\n- Redis for caching\n\n## Discord Bot Integration\n\nThe application includes a Discord bot integration that provides:\n\n- Game update notifications for subscribers\n- Game search functionality\n- User subscription management\n\nBot API endpoints are available at:\n\n- `/api/search` - Search for games\n- `/api/updates` - Get recent game updates\n- `/api/subscribe` - Subscribe to update notifications\n- `/api/unsubscribe` - Unsubscribe from notifications\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## Testing\n\n### Backend Tests (PHPUnit)\n\nRun the test suite with the testing environment (served at https://fvn-li-testing.ddev.site):\n\n```bash\nddev artisan test --env=testing\n# or, via Composer script (also uses --env=testing)\nddev composer test\n```\n\nFor coverage or parallel runs, use:\n\n```bash\nddev composer test:coverage\nddev composer test:parallel\n```\n\nReset the testing DB when needed:\n\n```bash\nddev composer migrate:test\n```\n\n### Frontend E2E Tests (Playwright)\n\n```bash\n# Run all E2E tests\nddev bun test:e2e\n\n# Run in UI mode (interactive)\nddev bun test:e2e:ui\n\n# Run accessibility tests\nddev bun test:a11y\n\n# View test report\nddev bun test:a11y:report\n```\n\n### Code Quality\n\n```bash\n# TypeScript type checking\nddev bun types\n\n# ESLint\nddev bun lint\n\n# Prettier formatting\nddev bun format\nddev bun format:check\n```\n\n## DDEV Conventions\n\n- Run Composer and bun inside DDEV: `ddev composer \u003ccmd\u003e`, `ddev bun \u003ccmd\u003e`.\n- PHP Linting: `ddev composer lint` (PHP/Duster), `ddev composer lint:fix`.\n- Frontend Linting: `ddev bun lint`, `ddev bun format`.\n- Git hooks run linters and tests via DDEV. Enable with `composer hooks:install` and ensure hooks are executable.\n- Testing URL: `fvn-li-testing.ddev.site` is configured via DDEV `additional_fqdns`. Run `ddev restart` after pulling\n  config changes.\n- Dev URL: `fvn-li.ddev.site` (default DDEV project URL).\n\n## Deployment\n\nThe application is deployed at [FVN.li](https://fvn.li). Deployment is handled through GitHub Actions which builds and\npublishes Docker images to GitHub Container Registry.\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Acknowledgements\n\n- [Laravel](https://laravel.com) - PHP web framework\n- [React](https://react.dev) - UI library\n- [Inertia.js](https://inertiajs.com) - Modern monolith framework\n- [Vite](https://vitejs.dev) - Frontend build tool\n- [TypeScript](https://www.typescriptlang.org) - Typed JavaScript\n- [Tailwind CSS](https://tailwindcss.com) - CSS framework\n- [Chart.js](https://www.chartjs.org) - Charting library\n- [Playwright](https://playwright.dev) - E2E testing framework\n- [itch.io](https://itch.io) - Game distribution platform\n- [Discord](https://discord.com) - Bot integration platform\n- [DDEV](https://ddev.com) - Local development environment\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakibaat%2Ffvn.li","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakibaat%2Ffvn.li","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakibaat%2Ffvn.li/lists"}