Inspiration

The core inspiration for Lifequest stems from the concept of gamification—specifically the idea of turning real-life self-improvement and daily tasks into an engaging role-playing game (RPG).

Self-Growth as a Game: The project is inspired by the desire to make personal development less of a chore and more of an adventure. By treating life goals as "quests," it leverages psychological rewards similar to those found in video games to keep users motivated.

RPG Mechanics: It draws heavily from classic RPG tropes (levels, experience points, and progression) to provide a visual and systematic sense of achievement for every real-world action completed.

What it does

Lifequest is a productivity and self-improvement platform that transforms your daily habits, tasks, and goals into a gamified experience.

Task Gamification: Users can input their real-life tasks (like exercising, reading, or completing work projects), which the app treats as "quests."

XP and Leveling System: Upon completing these quests, users earn experience points (XP). Accumulating XP allows the user’s "character" to level up, providing a tangible sense of progress.

Habit Tracking: It acts as a tracker for long-term habits, helping users maintain consistency by visualizing their streaks and growth over time.

Motivation Boost: By providing immediate feedback and rewards (virtual levels and badges), the app helps bridge the gap between hard work and long-term results, making it easier to stay focused on personal goals.

How we built it

We engineered this experience using a lean but powerful stack:

The Engine: Python handles the backend logic and state management.

The Interface: Streamlit was used to build the web framework, heavily customized with CSS injection to create the CRT-glow, "glitch-blue" Cyberpunk aesthetic.

The Brain: Google Gemini Pro Vision acts as the mission commander, interpreting real-world images to verify task status.

The Environment: Integrated .env file structures for secure API key management, ensuring our "Neural Link" (the connection to Gemini) stays private.

Challenges we ran into

Data Persistence Management: One of the major challenges was ensuring that agent information (XP, level, active mission) was physically saved in JSON files via auth.py to prevent losing progress due to page refreshes or logouts. Session State Synchronization: Maintaining consistency between different pages (app.py, missions.py, archives.py) requires rigorous management of st.session_state so that the active unit selected in the archives is correctly recognized by the operations center. Multimodal AI Integration: Configuring the gemini-2.5-flash model to analyze images (chore scans) and generate consistent mission objectives in RPG format required precise error handling and spinner management for the user experience. Streamlit Navigation Constraints: The inability to select a character from the archives often stems from Streamlit's rendering cycle, necessitating the use of st.rerun() to instantly validate the user's choice within the system. Cyberpunk Design and CSS: Injecting complex styles (animated grids, neon, bevels via clip-path) into the style.css file required careful orchestration to avoid interfering with Streamlit's native components while maintaining the "CORE-OS" visual identity. Evidence Integrity: Implementing an MD5 hashing system using hashlib was necessary to prevent agents from submitting the same image multiple times to fraudulently gain XP.

Accomplishments that we're proud of

tate Persistence: Streamlit’s rerunning nature often led to AttributeError glitches (as seen in our early logs), where the app would "forget" the current quest state. We had to implement a rigorous st.session_state architecture to keep the terminal stable.

What we learned

Session State: We learned that data persistence between files (app.py, missions.py, archives.py) is the cornerstone of a consistent multi-page application. Interface Responsiveness: The use of st.rerun() is essential to synchronize the user interface with real-time state changes, such as when a new character is activated. 2. Synergy between AI and Gameplay: Multimodal AI (Vision): Using Gemini-2.5-flash demonstrated that AI can dynamically transform real-world data (images of household chores) into engaging narrative elements (RPG objectives). Automated Validation: We discovered how to use AI as an "arbiter" capable of verifying the integrity of mission evidence by comparing a textual instruction to a visual capture. 3. Security and Authentication Architecture: Hashing and Protection: Implementing hashlib for password storage and image duplicate tracking taught us the fundamentals of securing user data in a web environment. Code Modularity: Separating business logic (authentication in auth.py, styling in style.css) allows for easier maintenance and improved source code clarity. 4. Immersive Design (Cyberpunk): Advanced CSS Customization: We learned to inject custom CSS to mask the "standard" look of Streamlit and create an immersive interface using neon grid animations and clip-path shapes. Dynamic Asset Generation: Integrating third-party APIs (like DiceBear for avatars) allows us to populate a game with diverse visual content without having to store hundreds of files locally.State Persistence: Streamlit’s rerunning nature often led to AttributeError glitches (as seen in our early logs), where the app would "forget" the current quest state. We had to implement a rigorous st.session_state architecture to keep the terminal stable. Visual Integrity: Balancing a high-contrast Cyberpunk UI with the readable, functional nature of a productivity tool required multiple iterations of custom CSS. Validation Logic: Tuning the AI to accurately distinguish between a "half-done" chore and a "fully completed" mission was a complex exercise in prompt engineering.

What's next for LifeQuest

Neural Voice Core: Integrating a conversational AI voice that "briefs" you on missions or offers encouragement during high-paralysis moments.Mission modification, for example if I take a picture of my dog ​​to feed him and my task is to take him outside, I have the option to modify

The Loot System: Earning "Credits" to customize your digital avatar or unlock new terminal themes.

Built With

Share this project:

Updates