A deployed, authentication-backed full-stack web application for managing structured, per-character matchup analysis in Melty Blood: Type Lumina.
Competitive players often rely on large spreadsheets or scattered documents to track matchup knowledge across multiple characters. This application replaces that workflow with a structured, authenticated web interface supporting per-user, per-character, and per-matchup notes with persistent storage and filtering.
- User Authentication: Secure login with per-user persistent data.
- Per-Character & Matchup Notes: Create, edit, and delete general and matchup-specific notes.
- Dynamic Character Data: Loads character moves and metadata from JSON files.
- Filtering & Search: Filter moves by name or notes presence.
- Data Pipeline: Spreadsheet → JSON workflow for maintainable character data updates.
- Deployed Web App: Hosted publicly for continuous access and testing.
- Backend: Python, Flask
- Database: SQLite (development), SQLAlchemy ORM
- Authentication: Flask-Login
- Frontend: HTML, CSS, JavaScript (Jinja2 templating)
- Data Processing: Python (spreadsheet-to-JSON pipeline)
- Deployment: Render
- Backend structured using MVC-style separation of routes, templates, and data models.
- Relational data model linking Users → Characters → Matchups → Notes.
- SQLAlchemy ORM used to prevent ID collisions and ensure per-user data isolation.
- JSON-driven character data pipeline to decouple static game data from user-generated content.
- Enabled separation of static game data and user-generated content to allow independent updates and scalability.
- Designed relational data models to support per-user, per-character, and per-matchup notes while preventing ID collisions and ensuring data isolation.
- Implemented dynamic UI state management to prevent DOM conflicts when switching between character perspectives and matchup contexts.
- Built a reusable spreadsheet-to-JSON ingestion pipeline to separate static domain data from user-generated content.
- Architected persistent session management using Flask-Login and SQLAlchemy for authenticated state continuity.
Live Demo (desktop-optimized):
https://mbtlmatchupnotes.onrender.com/
git clone https://github.com/Patdabaker/MBTLFrameData.git
cd MBTLFrameData
pip install -r requirements.txt
flask run- Mobile-responsive layout
- Expanded character dataset
- Advanced filtering and tagging
- User data export
MIT