Welcome to Solo System
Relevant source files
The following files were used as context for generating this wiki page:
Solo System is a gamified productivity application inspired by the "Solo Leveling" series. It establishes a "Penalty System" where users are assigned daily tasks categorized into physical, mental, and disciplinary domains. The system tracks user progress through experience points (XP), levels, and ranks, applying rewards for completion and penalties for failure to fulfill daily objectives.
The application operates as a client-side web interface using local storage for persistence. It features a real-time clock synchronized to Saudi Arabia time (KSA) to manage daily reset cycles and task generation based on the user's current rank and difficulty level.
Sources: index.html:1-10, Quest.html:1-10
Core Architecture and Data Management
The system is built on a single-page application (SPA) architecture utilizing HTML5, CSS3, and vanilla JavaScript. Data is persisted locally in the browser's localStorage under the key solo_penalty_v1.
Data Schema
The primary state object, systemData, maintains the following structure:
| Field | Type | Description |
|---|---|---|
points | Number | The total XP accumulated by the user. |
lastUpdate | String | The last date (YYYY-MM-DD) the tasks were refreshed. |
dailyTasks | Array | A list of objects containing task names, categories, and completion status. |
lastPenalty | Number | The value of the most recent XP deduction applied. |
Sources: index.html:125-128, Quest.html:125-128
The Daily Cycle
The system employs a checkDailyCycle function that executes upon loading. It compares the current date (KSA timezone) with lastUpdate. If a date mismatch is detected, the system calculates penalties for any incomplete tasks from the previous day and generates a new set of tasks.
Sources: index.html:184-206, Quest.html:184-206
Progression and Ranking System
The progression logic is governed by two primary functions: getRankConfig and calculateLevel. These functions determine the difficulty of tasks, the rewards granted, and the visual representation of the user's status.
Rank Configuration
Ranks range from 'F' to 'R', with each tier increasing the required XP for the next level and modifying task difficulty.
| Rank | Min XP | Reward | Penalty | Req. XP/Lvl | Difficulty Key |
|---|---|---|---|---|---|
| F/E | 0 | 2 | 3 | 10 | f |
| D | 150 | 3 | 5 | 12 | d |
| C | 300 | 3 | 5 | 15 | d |
| B | 500 | 4 | 6 | 20 | d |
| A | 800 | 4 | 6 | 25 | a |
| S | 1200 | 4 | 6 | 30 | a |
| SS | 2000 | 6 | 8 | 40 | r |
| R | 3000 | 6 | 8 | 50 | r |
Sources: index.html:130-140, Quest.html:130-140
Level Calculation Logic
Levels are calculated iteratively. For levels below 6, the requirement is fixed at 5 XP. Beyond level 6, the requirement is fetched from the getRankConfig based on the current point threshold.
Sources: index.html:142-151, Quest.html:142-151
Task Generation and Interaction
Tasks are pulled from a taskDatabase which contains categorized objectives (Physical, Discipline, Mental) with varying descriptions based on difficulty ('f', 'd', 'a', 'r').
Task Categories
- Physical: Includes exercises like pushups (ضغط), squats (سكوات), and planks (بلانك).
- Discipline: Focuses on habits like bed-making (ترتيب السرير) and hydration.
- Mental: Focuses on reading and cognitive improvement.
Sources: index.html:112-123, Quest.html:112-123
Interaction Flow
When a user interacts with a task card, the toggleTask function updates the task's completion status and adjusts the total XP points based on the current rank's reward value.
Sources: index.html:208-215, Quest.html:208-215
Conclusion
The Solo System provides a structured framework for personal development by translating real-world habits into a digital RPG-like progression. By leveraging daily cycles, rank-based difficulty scaling, and a persistent storage model, it ensures a consistent user experience focused on accountability and incremental growth.