FVN.li is a web application that tracks, analyzes, and provides insights into games published on itch.io. It collects data about games, their versions, ratings, and dialogue content, making it easier for users to discover and evaluate games on the platform. The project is deployed and accessible at FVN.li.
📚 View Documentation - Comprehensive documentation built with Writerside and deployed to GitHub Pages.
- Game Tracking: Monitor games published on itch.io, including metadata, versions, and ratings
- Dialogue Browser: Explore game dialogue content across different versions and languages
- Rating System: View and analyze game ratings from the community
- Language Support: Track supported languages for games and analyze translation coverage
- Character Statistics: View character statistics and dialogue distribution
- Discord Bot Integration: Get notified about game updates via Discord
- Backend: Laravel 12 with PHP 8.4
- Frontend: React 19 with TypeScript, Inertia.js 2.x, Tailwind CSS 4
- Build Tool: Vite 7 with SSR support
- Database: PostgreSQL 17
- Search: Meilisearch for full-text search
- Caching: Redis
- Development: DDEV for local development environment
- Visualization: Chart.js for data visualization
- Testing: Playwright for E2E and accessibility testing
- Deployment: Docker for containerized deployment
- API: RESTful API endpoints for Discord bot integration
For detailed architecture information, see the Frontend Architecture documentation.
-
Clone the repository:
git clone https://github.com/AkibaAT/fvn.li.git cd fvn.li -
Start the DDEV environment:
ddev start
-
Install PHP dependencies:
ddev composer install
-
Install JavaScript dependencies:
ddev pnpm install
-
Copy the environment file and generate an application key:
cp .env.example .env ddev artisan key:generate
-
Run database migrations:
ddev artisan migrate
-
Start the Vite development server:
ddev pnpm dev
-
Access the application at https://fvn-li.ddev.site
For more detailed development instructions, see the Development Guide.
The application uses several key models:
- Game: Core game information from itch.io
- GameVersion: Tracks different versions of games
- Rater: Users who rate games
- Rating: Individual ratings for games
- DialogueLine: Game dialogue content
- Character: Characters in games
- Language: Supported languages for games
- DiscordUser: Discord users subscribed to game updates
The application can be deployed using Docker in production environments:
- Configure environment variables in
.env - Use the provided
docker-compose.ymlto start the application:docker compose up -d
This will start the following containers:
- Web application (Laravel)
- PostgreSQL database
- Redis for caching
The application includes a Discord bot integration that provides:
- Game update notifications for subscribers
- Game search functionality
- User subscription management
Bot API endpoints are available at:
/api/search- Search for games/api/updates- Get recent game updates/api/subscribe- Subscribe to update notifications/api/unsubscribe- Unsubscribe from notifications
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Run the test suite with the testing environment (served at https://fvn-li-testing.ddev.site):
ddev artisan test --env=testing
# or, via Composer script (also uses --env=testing)
ddev composer testFor coverage or parallel runs, use:
ddev composer test:coverage
ddev composer test:parallelReset the testing DB when needed:
ddev composer migrate:test# Run all E2E tests
ddev pnpm test:e2e
# Run in UI mode (interactive)
ddev pnpm test:e2e:ui
# Run accessibility tests
ddev pnpm test:a11y
# View test report
ddev pnpm test:a11y:report# TypeScript type checking
ddev pnpm types
# ESLint
ddev pnpm lint
# Prettier formatting
ddev pnpm format
ddev pnpm format:check- Run Composer and pnpm inside DDEV:
ddev composer <cmd>,ddev pnpm <cmd>. - PHP Linting:
ddev composer lint(PHP/Duster),ddev composer lint:fix. - Frontend Linting:
ddev pnpm lint,ddev pnpm format. - Git hooks run linters and tests via DDEV. Enable with
composer hooks:installand ensure hooks are executable. - Testing URL:
fvn-li-testing.ddev.siteis configured via DDEVadditional_fqdns. Runddev restartafter pulling config changes. - Dev URL:
fvn-li.ddev.site(default DDEV project URL).
The application is deployed at FVN.li. Deployment is handled through GitHub Actions which builds and publishes Docker images to GitHub Container Registry.
This project is licensed under the MIT License - see the LICENSE file for details.
- Laravel - PHP web framework
- React - UI library
- Inertia.js - Modern monolith framework
- Vite - Frontend build tool
- TypeScript - Typed JavaScript
- Tailwind CSS - CSS framework
- Chart.js - Charting library
- Playwright - E2E testing framework
- itch.io - Game distribution platform
- Discord - Bot integration platform
- DDEV - Local development environment