FVN.li - Visual Novel Analytics and Tracking
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.
Features
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
Tech Stack
Backend: Laravel 12 with PHP 8.4
Frontend: Livewire, TypeScript, Tailwind CSS
Database: PostgreSQL 17 with PgBouncer
Caching: Redis
Development: DDEV for local development environment
Visualization: ECharts for data visualization
Deployment: Docker for containerized deployment
API: RESTful API endpoints for Discord bot integration
Getting Started
Prerequisites
Local Development Setup
Clone the repository:
git clone https://github.com/AkibaAT/fvn.li.git cd fvn-liStart the DDEV environment:
ddev startInstall PHP dependencies:
ddev composer installInstall JavaScript dependencies:
ddev npm installCopy the environment file and generate an application key:
cp .env.example .env ddev artisan key:generateRun database migrations:
ddev artisan migrateStart the development server:
ddev npm run devAccess the application at https://fvn-li.ddev.site
Database Structure
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
Docker Deployment
The application can be deployed using Docker in production environments:
Configure environment variables in
.env
Use the provided
docker-compose.yml
to start the application:docker compose up -d
This will start the following containers:
Web application (Laravel)
PostgreSQL database with PgBouncer
Redis for caching
Discord Bot Integration
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
Contributing
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
Testing
Run the test suite with:
Deployment
The application is deployed at FVN.li. Deployment is handled through GitHub Actions which builds and publishes Docker images to GitHub Container Registry.
License
This project is licensed under the MIT License - see the LICENSE file for details.