Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: Bug Report
about: Create a report to help us improve LevelUp
about: Create a report to help us improve ClimbStack
title: '[BUG] '
labels: bug
assignees: ''
Expand Down
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: Feature Request
about: Suggest an idea for LevelUp
about: Suggest an idea for ClimbStack
title: '[FEAT] '
labels: enhancement
assignees: ''
Expand All @@ -12,7 +12,7 @@ assignees: ''

## Describe the solution you'd like

<!-- A clear and concise description of what you want to happen. Keep in mind LevelUp's minimal and native UI philosophy. -->
<!-- A clear and concise description of what you want to happen. Keep in mind ClimbStack's minimal and native UI philosophy. -->

## Describe alternatives you've considered

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build-apk.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,13 @@ jobs:
- name: 📂 Upload APK Artifact
uses: actions/upload-artifact@v7
with:
name: LevelUp-APK
name: ClimbStack-APK
path: android/app/build/outputs/apk/release/app-release.apk

- name: 🚀 Create GitHub Release
if: startsWith(github.ref, 'refs/tags/v')
uses: softprops/action-gh-release@v3
with:
files: android/app/build/outputs/apk/release/app-release.apk
name: LevelUp ${{ github.ref_name }}
name: ClimbStack ${{ github.ref_name }}
generate_release_notes: true
2 changes: 1 addition & 1 deletion AUTHORS
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
All people who contributed to LevelUp by sending at least a patch or
All people who contributed to ClimbStack by sending at least a patch or
more (in the order of the date of their first contribution), except
those who explicitly didn't want to be mentioned. People with a * next
to their names are not found in the metadata of the git history.
Expand Down
12 changes: 6 additions & 6 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ authors:
- family-names: 'Zanotti'
given-names: 'Giovanni'
orcid: 'https://orcid.org/0009-0000-8900-9586'
title: 'LevelUp: Defeating Decision Fatigue via Gamified Time Management'
version: 1.2.0
title: 'ClimbStack: Defeating Decision Fatigue via Gamified Time Management'
version: 1.3.0
date-released: '2026-09-25'
url: 'https://github.com/GiZano/LevelUp'
repository-code: 'https://github.com/GiZano/LevelUp'
abstract: 'LevelUp is an offline, privacy-first React Native application that leverages Agent-Driven Development to bridge the gap between long-term ambitions (Peaks) and daily execution (Weekly Block Planner).'
url: 'https://github.com/ClimbStack/climbstack-app'
repository-code: 'https://github.com/ClimbStack/climbstack-app'
abstract: 'ClimbStack is an offline, privacy-first React Native application that leverages Agent-Driven Development to bridge the gap between long-term ambitions (Peaks) and daily execution (Weekly Block Planner).'
keywords:
- time-management
- react-native
Expand All @@ -20,4 +20,4 @@ license: MIT
identifiers:
- type: doi
value: '10.5281/zenodo.22969593'
description: 'Zenodo archive of the LevelUp source code'
description: 'Zenodo archive of the ClimbStack source code'
10 changes: 5 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributing to LevelUp 🏔️
# Contributing to ClimbStack 🏔️

First off, thank you for considering contributing to LevelUp! It's people like you that make the open-source community such a great place to learn, inspire, and create.
First off, thank you for considering contributing to ClimbStack! It's people like you that make the open-source community such a great place to learn, inspire, and create.

## How to Contribute

Expand All @@ -9,7 +9,7 @@ First off, thank you for considering contributing to LevelUp! It's people like y
3. **Develop**: Write your code. Make sure to adhere to the coding guidelines below.
4. **Test**: Ensure the app builds locally and your changes don't break existing functionality.
5. **Commit**: Use Conventional Commits (e.g., `feat: add new block type`, `fix: resolve crash on peaks screen`).
6. **Push & PR**: Push your branch to your fork and open a Pull Request against the `main` branch of LevelUp.
6. **Push & PR**: Push your branch to your fork and open a Pull Request against the `main` branch of ClimbStack.

## Local Development Setup

Expand Down Expand Up @@ -49,7 +49,7 @@ If you are new to the codebase, look for issues labeled `good first issue` or `h

## Modular Architecture

LevelUp strictly follows a modular architecture (inspired by large-scale projects like SymPy). When contributing, please ensure your code is isolated to its specific domain:
ClimbStack strictly follows a modular architecture (inspired by large-scale projects like SymPy). When contributing, please ensure your code is isolated to its specific domain:

- `src/store/`: Core logic, SQLite interactions, and React Context state.
- `src/components/`: Dumb, reusable UI components (e.g., SVG charts, buttons).
Expand All @@ -59,7 +59,7 @@ LevelUp strictly follows a modular architecture (inspired by large-scale project

## Versioning Policy

LevelUp follows [Semantic Versioning](https://semver.org/) (`MAJOR.MINOR.PATCH`):
ClimbStack follows [Semantic Versioning](https://semver.org/) (`MAJOR.MINOR.PATCH`):

| Bump | When | Example |
| ------------------- | ------------------------------------------------------------------------------------------------------------------- | -------- |
Expand Down
22 changes: 11 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<div align="center">
<img src="./assets/icon.png" width="120" style="border-radius: 24px; margin-bottom: 20px;" alt="LevelUp Logo" />
<h1>LevelUp</h1>
<img src="./assets/icon.png" width="120" style="border-radius: 24px; margin-bottom: 20px;" alt="ClimbStack Logo" />
<h1>ClimbStack</h1>
<p><b>Gamify your goals. Conquer your peaks.</b></p>

<p>
Expand All @@ -10,12 +10,12 @@
<img src="https://img.shields.io/badge/SQLite-07405E?style=for-the-badge&logo=sqlite&logoColor=white" alt="SQLite" />
<img src="https://img.shields.io/badge/Open_Source-4CAF50?style=for-the-badge&logo=open-source-initiative&logoColor=white" alt="Open Source" />
<a href="https://doi.org/10.5281/zenodo.22969593"><img src="https://img.shields.io/badge/DOI-10.5281%2Fzenodo.22969593-blue?style=for-the-badge&logo=zenodo&logoColor=white" alt="DOI" /></a>
<a href="https://codecov.io/gh/GiZano/LevelUp"><img src="https://img.shields.io/codecov/c/github/GiZano/LevelUp?style=for-the-badge&logo=codecov&logoColor=white" alt="Codecov" /></a>
<a href="https://codecov.io/gh/ClimbStack/climbstack-app"><img src="https://img.shields.io/codecov/c/github/ClimbStack/climbstack-app?style=for-the-badge&logo=codecov&logoColor=white" alt="Codecov" /></a>
</p>
<p><i>An open-source productivity engine, built by developers, for everyone.</i></p>
</div>

LevelUp is a mobile app for long-term goal tracking, built around the metaphor of **mountain climbing**: every goal is a peak to reach, every sub-goal is a base camp along the way. It includes a weekly planner to organize your week in blocks and eliminate _decision fatigue_.
ClimbStack is a mobile app for long-term goal tracking, built around the metaphor of **mountain climbing**: every goal is a peak to reach, every sub-goal is a base camp along the way. It includes a weekly planner to organize your week in blocks and eliminate _decision fatigue_.

> [!NOTE]
> Personal project born to solve a real problem: not knowing what to do in free time and ending up scrolling the phone. The app is the scaffolding — the real goal is to build the time-boxing habit until it becomes natural.
Expand Down Expand Up @@ -69,8 +69,8 @@ LevelUp is a mobile app for long-term goal tracking, built around the metaphor o

```bash
# Clone the repository
git clone https://github.com/gizano/LevelUp.git
cd LevelUp
git clone https://github.com/ClimbStack/climbstack-app.git
cd climbstack-app

# Install dependencies
npm install
Expand All @@ -91,7 +91,7 @@ eas build --platform android --profile preview

### Installation from Release

1. Go to the [Releases](https://github.com/gizano/LevelUp/releases) page of the repository
1. Go to the [Releases](https://github.com/ClimbStack/climbstack-app/releases) page of the repository
2. Download the APK of the latest release
3. Transfer it to your phone and install it (enable "Install from unknown sources" if asked)

Expand All @@ -100,7 +100,7 @@ eas build --platform android --profile preview
## 📁 Project Structure

```
LevelUp/
climbstack-app/
├── src/
│ ├── components/ # Reusable UI components
│ ├── screens/ # App screens
Expand Down Expand Up @@ -165,16 +165,16 @@ See [ROADMAP.md](./ROADMAP.md) for the complete development plan.
We are actively working to cover the entire application with automated tests. Help us make this sunburst graph completely green!

<p align="center">
<a href="https://codecov.io/github/GiZano/LevelUp">
<img src="https://codecov.io/github/GiZano/LevelUp/graphs/sunburst.svg?token=ZMK6BDH8WI" alt="Codecov Sunburst" width="600" />
<a href="https://codecov.io/github/ClimbStack/climbstack-app">
<img src="https://codecov.io/github/ClimbStack/climbstack-app/graphs/sunburst.svg?token=ZMK6BDH8WI" alt="Codecov Sunburst" width="600" />
</a>
</p>

---

## 🤝 Community & Security

- **Open Source Philosophy**: LevelUp is 100% open-source, built by developers for everyone. We believe in transparency and community-driven tools.
- **Open Source Philosophy**: ClimbStack is 100% open-source, built by developers for everyone. We believe in transparency and community-driven tools.
- **Code of Conduct**: Please refer to our [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md) to understand the standards for participating in our community.
- **Security**: If you discover any security vulnerabilities, please check our [SECURITY.md](./SECURITY.md) for reporting guidelines.

Expand Down
4 changes: 2 additions & 2 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 🏔️ LevelUp — Roadmap
# 🏔️ ClimbStack — Roadmap

> Personal side project. Timeboxed, AI-assisted, controlled scope.
> The goal is to have a working app on the phone, not to win a design award.
Expand All @@ -23,7 +23,7 @@
- [x] Linter + formatter setup (ESLint + Prettier)
- [x] First commit with working empty skeleton

**Deliverable**: `npx expo start` works, app shows an empty screen with "LevelUp" name
**Deliverable**: `npx expo start` works, app shows an empty screen with "ClimbStack" name

---

Expand Down
4 changes: 2 additions & 2 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Supported Versions

LevelUp currently supports the following versions with security updates:
ClimbStack currently supports the following versions with security updates:

| Version | Supported |
| ------- | ------------------ |
Expand All @@ -11,7 +11,7 @@ LevelUp currently supports the following versions with security updates:

## Reporting a Vulnerability

Security is a priority for LevelUp. If you discover a security vulnerability, please do not disclose it publicly.
Security is a priority for ClimbStack. If you discover a security vulnerability, please do not disclose it publicly.

Instead, please send an email to the project maintainer at [your.email@example.com] (or use GitHub Security Advisories) to report the vulnerability.

Expand Down
19 changes: 14 additions & 5 deletions app.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"expo": {
"name": "LevelUp",
"slug": "levelup",
"version": "1.2.0",
"name": "ClimbStack",
"slug": "climbstack",
"version": "1.3.0",
"orientation": "portrait",
"icon": "./assets/icon.png",
"userInterfaceStyle": "automatic",
Expand All @@ -13,7 +13,7 @@
"android": {
"softwareKeyboardLayoutMode": "pan",
"package": "com.gizano.levelup",
"versionCode": 5,
"versionCode": 6,
"adaptiveIcon": {
"backgroundColor": "#071A2F",
"foregroundImage": "./assets/icon.png"
Expand All @@ -34,7 +34,16 @@
}
],
"expo-sharing",
"expo-splash-screen"
"expo-splash-screen",
[
"expo-build-properties",
{
"android": {
"enableMinifyInReleaseBuilds": true,
"enableShrinkResourcesInReleaseBuilds": true
}
}
]
],
"extra": {
"eas": {
Expand Down
Binary file modified assets/tutorial_peaks.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/tutorial_settings.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/tutorial.pdf
Binary file not shown.
16 changes: 8 additions & 8 deletions docs/tutorial.typ
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#set par(justify: true)

#align(center)[
#text(size: 28pt, weight: "bold")[LevelUp]
#text(size: 28pt, weight: "bold")[ClimbStack]

#v(1em)
#text(size: 16pt)[User Manual & Full Tutorial]
Expand All @@ -16,15 +16,15 @@
#v(4em)

= 1. Introduction
LevelUp is a React Native application built to defeat *decision fatigue*. It combines gamified long-term goals with strict weekly time-blocking. Instead of constantly wondering "What should I do today?", LevelUp provides a clear, actionable dashboard based on your predefined weekly routine.
ClimbStack is a React Native application built to defeat *decision fatigue*. It combines gamified long-term goals with strict weekly time-blocking. Instead of constantly wondering "What should I do today?", ClimbStack provides a clear, actionable dashboard based on your predefined weekly routine.

This document serves as both a comprehensive guide for new users during testing sessions and a technical reference for contributors.

#pagebreak()

= 2. Quick Start: The LevelUp Methodology
= 2. Quick Start: The ClimbStack Methodology

The core philosophy of LevelUp is bridging the gap between grand ambitions and daily execution. To do this, we use the mountain metaphor.
The core philosophy of ClimbStack is bridging the gap between grand ambitions and daily execution. To do this, we use the mountain metaphor.

== 2.1 Peaks & Camps (The "What")
A *Peak* represents a major, long-term goal (e.g., "Pass the OS Exam", "Launch a Startup"). Because Peaks are daunting, they must be broken down into *Camps* (milestones). Every time a camp is reached, you gain 100 meters of altitude, creating a gamified sense of progression.
Expand Down Expand Up @@ -74,7 +74,7 @@ To reach camps, you need to put in the hours consistently. *Blocks* are schedule

= 4. Gamification & Analytics

LevelUp uses subtle gamification to keep you engaged:
ClimbStack uses subtle gamification to keep you engaged:
- *Altitude*: Earned by completing Camps (100m) and Blocks (1m/hour). Tap the "Total Altitude" card on the Home screen to view a historical breakdown of meters climbed per category and per peak.
- *Peaks Reached*: Tracks fully completed goals. Tap this card to see a list of completed and in-progress peaks with exact completion percentages.
- *Streaks*: Your consecutive days of activity. Do at least one block a day to keep the fire alive!
Expand All @@ -83,15 +83,15 @@ LevelUp uses subtle gamification to keep you engaged:

= 5. Settings & Data Management

LevelUp is fully offline and privacy-first.
ClimbStack is fully offline and privacy-first.
- *Backup*: From the Settings tab, you can export all your data (Peaks, Blocks, Categories) into a single `.json` file and share it via Google Drive or Email. You can also import a backup to restore your data on a new device.
- *Localization*: Change the language (English/Italian) on the fly without restarting the app.

#pagebreak()

= 6. Technical Architecture

LevelUp is designed to be fully offline, privacy-first, and lightning-fast.
ClimbStack is designed to be fully offline, privacy-first, and lightning-fast.

- *Frontend Framework*: React Native (via Expo Managed Workflow).
- *Language*: TypeScript.
Expand All @@ -100,6 +100,6 @@ LevelUp is designed to be fully offline, privacy-first, and lightning-fast.

= 7. Open Source Contribution

LevelUp strongly embraces *Agent-Driven Development*. We encourage contributors to utilize AI tools (like Copilot, Claude, or Antigravity) to write boilerplate, fix bugs, and scaffold features.
ClimbStack strongly embraces *Agent-Driven Development*. We encourage contributors to utilize AI tools (like Copilot, Claude, or Antigravity) to write boilerplate, fix bugs, and scaffold features.

Please read the `AGENTS.md` and `CONTRIBUTING.md` files in the repository root for specific instructions on how to prompt your AI assistant and structure your Pull Requests for this codebase.
23 changes: 19 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "levelup",
"version": "1.2.0",
"name": "climbstack",
"version": "1.3.0",
"main": "index.ts",
"overrides": {
"uuid": ">=11.1.1"
Expand All @@ -14,6 +14,7 @@
"@react-navigation/native": "^7.4.1",
"@react-navigation/native-stack": "^7.20.0",
"expo": "~57.0.26",
"expo-build-properties": "~57.0.22",
"expo-calendar": "~57.0.5",
"expo-crypto": "~57.0.3",
"expo-document-picker": "~57.0.3",
Expand Down
2 changes: 1 addition & 1 deletion src/components/.gitkeep
Original file line number Diff line number Diff line change
@@ -1 +1 @@
// LevelUp UI components
// ClimbStack UI components
2 changes: 1 addition & 1 deletion src/screens/.gitkeep
Original file line number Diff line number Diff line change
@@ -1 +1 @@
// LevelUp screens
// ClimbStack screens
Loading
Loading