🚀 Introduction
Welcome to the official documentation of EmeteApp.
This tool has been designed to offer Hattrick managers a completely interactive and independent web experience.
Through the processing of structured files, the application engine is responsible for generating customized web pages: such as the membership area, the shop, upcoming matches, or news, achieving the look of an official page and without you having to code.
Whether you are looking for a quick local visualization or want to deploy a full portal on your own server, here you will find everything you need to master the project's architecture.
⚡ Quickstart Guide
Follow these simple steps to download, extract, and run the application on your computer:
1 Download the file
Click the download button. Wait for the emeteApp.zip file download to complete and save it in an accessible folder such as your Desktop.
2 Extract the ZIP
Right-click on emeteApp.zip and select "Extract all..." (Windows). Doing this is essential for the application to work correctly.
3 Run the application
Enter the newly extracted folder, find the file named emete.exe and double-click it to start the program immediately:
emete.cmd instead.
4 Customize JSON
Adapt the application to your Hattrick club and manager data by configuring the JSON files. Depending on your experience, choose one of the following paths:
1. First-time setup: We strongly recommend using our JSON Generator to create your initial configuration files easily.
2. Subsequent updates: For future changes, you can either return to the JSON Generator to create a new file or modify the existing .json files directly in your project.
5 Customize HTML
If you are an advanced user, open the HTML templates to modify the interface or consult the "Project Structure" section to know what you can safely edit.
6 Deploy to the world
To make your application accessible on the Internet, you must host it on a virtual private server (Linux VPS) and download the Linux ZIP package with the production version.
Once you have the file on the server, check our Linux Configuration Manual to set up the web server and link your permanent domain.
📂 Project Structure
This is the organization of the directories and files that make up EmeteApp. Knowing this structure will allow you to customize the application and understand how your team's data is managed.
├── 📂 instance/ # JSON data
│ ├── 📄 manager.json
│ └── 📄 products.json
│ └── 📄 teams.json
├── 📂 static/ # Static web assets
│ └── 📂 css/ # Web stylesheets
│ └── 📂 img/ # Images
│ └── 📂 js/ # Javascript
├── 📂 templates/ # HTML templates
│ └── 📄 error404.html
│ └── 📄 error500.html
│ └── 📂 manager/ # Manager templates
│ │ └── 📄 base.html
│ │ └── 📄 index.html
│ │ └── 📄 ...
│ └── 📂 muten-roshi/ # Your team
│ │ └── 📄 base.html
│ │ └── 📄 club.html
│ │ └── 📄 first_team.html
│ │ └── 📄 ...
└── 📄 emete.exe # Executable
🛠️ Key Components
emete.exe
This is the main engine of the application. It is responsible for reading your teams' data, processing the templates, and starting the system. You must not move it out of this folder so it can locate the remaining directories.
instances/ (Team Information)
Contains files with the .json extension. Each file represents a team or a specific configuration with internally structured technical data.
static/ (Static Files)
This is the folder for essential static resources (such as CSS, images, and JavaScript) needed for the visual layout and core functionality of the web interface.
templates/ (HTML Layout and Customization)
This is the folder to customize your space. It contains the visual structure that the application will use to display data, both for the manager area and for your teams.
🗄️ JSON Content
The files saved in the instance/ folder contain the technical information of your teams, manager, and shop products. The application reads this data and dynamically injects it into your HTML templates.
📝 Manager
The manager.json file acts as the core information hub for your identity. Once generated, it contains structured data from your Hattrick user profile, including your identity, club history, achievements, and a customized timeline.
👤 1. Profile
GeneralBasic user data, alias, seniority, and global achievements
📅 2. Trajectory
InfrastuctureRegistration date, active years, milestones reached, and previous team history
🌍 3. Timeline
OrganizationOrdered events, marking outstanding milestones of game loyalty
🔑 Fields Table
The fields are detailed below:
| Block | HTML Variable (Tag) | Type | Field Description |
|---|---|---|---|
| manager | username | String | Manager's username. |
| manager | name | String | The name you want to give to the manager, which can be different from the one on Hattrick. |
| manager | manager_id | Integer | Manager's identifier on Hattrick. |
| manager | url_manager | String | URL of the manager's profile on Hattrick. |
| manager | flag | String | Country where registered. |
| manager | joined | String Date | Registration date. |
| manager | presentation | String | Free text to explain who you are. |
| manager | previous_teams | List (Array) | List of previous teams. To iterate through different teams inside templates: for team in previous_teams |
| manager | faceCard | String | Manager's avatar. |
| manager | points_achievements | String | Total points earned in achievements. |
| manager | current_teams | List (Array) | Current teams on Hattrick. |
| manager | timeline | List (Array) | Customized timeline marking loyalty milestones. |
| manager | clean_faceCard | Function | Shows a clean avatar, without any achievements. |
Practical integration example: When the EmeteAPP engine processes your dynamic HTML file, it will automatically replace the {{manager.username}} tags with the actual value defined in your club's JSON.
📝 Teams
The teams.json file acts as the core information hub for your club. Once generated, it contains the following data blocks in a structured format that will be automatically rendered on your portal:
🛡️ 1. Club Identity
GeneralUnique identifier, official Hattrick ID, team name, country, and customized description.
🏆 2. History and Achievements
RecordsFoundation date, official sponsor, current group/league, trophies won, official kit...
🏟️ 3. Infrastructure and Youth Academy
FacilitiesStadium details, coaching staff, board employees, and youth academy information.
🏃♂️ 4. Player Squad
TeamComplete list with names, custom avatars, usual field positions, and match-call status.
📅 5. Schedule and Matches
CompetitionsDetails of the current and historical seasons, along with scheduled league matches week by week.
📰 6. News and Updates
Current AffairsLatest updates, board press releases, or articles published about the team's day-to-day life.
🔑 Template Fields and Keys Table
Below is a detailed list of the fields generated by the Jupyter script and how you should call them within your HTML files inside the templates/ folder using the template engine:
| Block | HTML Variable (Tag) | Type | Field Description |
|---|---|---|---|
| team | _id | String | Unique document identifier in the database. |
| team | name | String | Official name of your Hattrick club. |
| team | team_id | String | Official numerical ID of the club in Hattrick. |
| team | country | String | Country or national league where the team competes. |
| team | description | String | Customized description or presentation of the club. |
| team | logo | String | Path or link to the club's crest image. |
| team | founded | String | Foundation or creation date of the team. |
| team | sponsor | Dictionary | Information and details of the main sponsor. |
| team | group | String | Name of the current league or group (e.g., VI.123). |
| team | staff | List (Array) | List of coaching staff members and club employees. |
| team | allTrophies | List (Array) | History of trophies and titles won by the club. |
| team | footbal_kit | List (Array) | Design or images of the club kits. |
| team | season | Integer | Number of the current season in progress. |
| team | number_members | Integer | Total number of club members or official fans. |
| team | stadium | Dictionary | Stadium data (name, capacity, seating sections). |
| team | youth_team | Dictionary | Information about the youth team or academy. |
| team | position_general | Integer | Current position in the league standings table. |
| team | news | List (Array) | List of official press releases and news articles of the club. |
| team | players | List (Array) | List of players currently on the squad roster. |
| team | calendar_matches | List (Array) | Schedule of all planned and upcoming matches. |
| team | get_nearby_number_members | Integer | Approximate value: number_members - 150. |
| team | get_play_match_week | Function | Match to be played during the current in-progress week. |
| team | get_play_match_home | Function | Match to be played at home. |
| team | parse_trophy | Function | Sorts the trophy list by season in descending order. |
Practical integration example: When the EmeteAPP engine processes your dynamic HTML file, it will automatically replace the {{team.founded}} or {{team.footbal_kit[0] #home kit}} tags with the actual value defined in your club's JSON.
📝 Products
The products.json file acts as a simplified inventory that lists all the official club merchandise available in your team's store. It is used to automatically render the product catalog on the portal where your fans can buy shirts, scarves, or team gear:
👕 1. Official Kit
GeneralMatch shirts, shorts, or official jackets for the current season.
🔑 Fields Table
Below is a detailed list of the fields for a club:
| Block | HTML Variable (Tag) | Type | Field Description |
|---|---|---|---|
| id_team | id | String | Unique name that will be displayed in the URL. |
| id_team | name | String | Product name. |
| id_team | description | String | Description. |
| id_team | price | Integer | Amount. |
📄 JSON Structure Examples (products.json)
{
"muten-roshi-fc": [
{
"id": "home_kit",
"name": "Home kit",
"description": "Muten Roshi home kit..",
"price": 45
},
{
"id": "hattrick_scarf",
"name": "Hattrick Scarf",
"description": "The legendary scarf used in the world of Hattrick.",
"price": 15
}
]
}
{
"muten-roshi-fc": [
{
"id": "home_kit",
"name": "Home kit",
"description": "Muten Roshi home kit.",
"price": 45
},
{
"id": "hattrick_scarf",
"name": "Hattrick Scarf",
"description": "The legendary scarf used in the world of Hattrick.",
"price": 15
}
],
"giru-fc": [
{
"id": "beanie",
"name": "Beanie",
"description": "this official beanie brings the ultimate manager spirit to your style.",
"price": 50
},
{
"id": "home_kit",
"name": "Home Kit",
"description": "Giru home kit.",
"price": 12
}
]
}
Practical integration example: It is recommended to name the store images using the same ID assigned in the JSON file.
📊 How to Display JSON Data in Your HTML
To render your team's data within the HTML templates, the application uses a dynamic variable system via double curly braces {{}}. When editing any HTML file inside templates/, simply insert the exact variable name:
1. String Variables
If the JSON data is a simple text (such as the team name or category), it is rendered directly by writing the key name:
<!-- Example of how to use it in your custom HTML. -->
<div class="team-card">
<h1>Name: {{manager.name}}</h1>
<h1>Flag: {{manager.flag}}</h1>
<h1>Joined: {{manager.joined}}</h1>
</div>
2. List Variables (Arrays)
If the JSON data contains a list of items (such as a list of players or trophies), it must be iterated using a loop:
<!-- Example of how to iterate over a list in your custom HTML -->
<ul class="trophies-list">
{% for trophy in team.allTrophies %}
<li>{{trophy.group}} season: {{trophy.season}}</li>
{% endfor %}
</ul>
3. Dictionary Variables (Dict)
If the JSON data is an object or dictionary, its properties are accessed using bracket notation (for example, object['property']) to render each specific sub-key individually on the interface:
<!-- Example of how to access nested properties in your custom HTML -->
<div class="sponsor-card">
<h2>sponsor name: {{team.sponsor["name"]}}</h2>
</div>
4. Using Functions
Functions are available using object dot notation followed by their corresponding parentheses, just as you would when programming:
<!-- Example of how to invoke custom class methods in your HTML -->
<div class="custom-functions-example">
{% for trophy in team.parse_trophy() %}
<div class="trophy-item">
<span>Season: {{trophy.season}}</span>
</div>
{% endfor %}
</div>
5. Using Basic Filters
Filters are used to modify the output format of a variable before rendering it. They are applied using the vertical bar or pipe symbol (|) to the right of the data. The most common and supported filters are:
| upper: Converts all text to uppercase.| lower: Converts all text to lowercase.| title: Capitalizes the first letter of each word.| default('value'): Displays a fallback text if the variable is empty or does not exist.| length: Returns the number of items in a list or the length of a string.
<!-- Example of filter application in Jinja -->
<div class="filters-example">
<h2>{{team.name | upper}}</h2>
<p>Role: {{manager.role | title}}</p>
<p>Status: {{team.season | default('--')}}</p>
<p>Total: {{team.players | length}}</p>
</div>
To learn how to use dot or bracket notation and access template data on the interface, you can check the variables section in the official Jinja documentation or leverage artificial intelligence tools.
Tip: Make sure to write the variable name exactly as it appears in the .json file inside the instances/ folder (paying close attention to uppercase, lowercase, and underscores).
📂 Catalog of Available Pages
The technical documentation of the views that the application engine will automatically generate once the data is processed:
Manager
Manager Profile
/Main page presenting the manager's profile, career, experience, and achievements.
Data source:
manager.jsonteams.json
Legal Notice
/legal-noticeMandatory legal information, terms of use, and website ownership details.
Data source:
manager.json
Cookies Policy
/cookie-policyInformation about the use of cookies and other storage technologies on the website.
Data source:
manager.json
Privacy Policy
/privacy-policyInformation on how personal data is collected, used, stored, shared, and protected.
Data source:
manager.json
Club
Club Home
/<team_id>/Main page of the club with an overview, latest news, and key information.
Data source:
manager.jsonteams.json
Club Information
/<team_id>/clubGeneral information about the club, including its history, identity, and achievements.
Data source:
teams.json
First Team
/<team_id>/first-teamInformation about the club's first team, including players, staff, and season details.
Data source:
manager.jsonteams.json
Youth Team
/<team_id>/young-teamInformation about the club's youth teams, player development, and academy.
Data source:
teams.json
Become a Member
/<team_id>/join-usJoin the club as a member and enjoy exclusive benefits while supporting the team.
Data source:
teams.json
Matches
/<team_id>/matchesMatch schedule, results, fixtures, and information about upcoming games.
Data source:
teams.json
Stadium
/<team_id>/stadiumInformation about the club's stadium, facilities, location, and matchday experience.
Data source:
teams.json
Store
/<team_id>/store/Official club store with jerseys, merchandise, and fan products.
Data source:
teams.jsonproducts.json
Shopping Cart
/<team_id>/store/cartReview and manage the items selected before completing your purchase.
Data source:
teams.json
Login
/<team_id>/loginSign in to access your account and member services. This is a demo login page.
Data source:
teams.json
Profile
/<team_id>/profileMain page presenting the member's profile, membership status, fan identity, and club involvement.
Data source:
teams.json
Legal Notice and Privacy Policy
/<team_id>/legal-policyLegal notice, privacy policy, and information about data protection for the club website.
Data source:
teams.json
Cookies Policy
/<team_id>/cookie-policyInformation about the use of cookies and storage technologies on the club website.
Data source:
teams.json
Contact
/<team_id>/contactContact the club's member services or press office for assistance and inquiries.
Data source:
teams.json
Privacy Policy
/<team_id>/privacy-policyInformation on how personal data is collected, used, stored, shared, and protected.
Data source:
teams.json
📦 Production Deployment
The technical documentation to make your customized app accessible to everyone.
🚀 Are you ready?
Move your project from the local development environment to a real web server step by step.