Simple incremental counter
Find a file
2025-08-01 00:56:26 +02:00
.github/workflows Fresh Laravel install 2025-07-10 15:24:15 +02:00
app Onboarding frontend 2025-08-01 00:56:26 +02:00
bootstrap Fresh Laravel install 2025-07-10 15:24:15 +02:00
config Fresh Laravel install 2025-07-10 15:24:15 +02:00
database Onboarding frontend 2025-08-01 00:56:26 +02:00
docker Fix dev container 2025-08-01 00:03:50 +02:00
public Add number font 2025-07-12 21:55:55 +02:00
resources Onboarding frontend 2025-08-01 00:56:26 +02:00
routes Onboarding backend 2025-08-01 00:36:05 +02:00
storage Fresh Laravel install 2025-07-10 15:24:15 +02:00
tests Fix milestone issues 2025-07-13 00:18:45 +02:00
.editorconfig Fresh Laravel install 2025-07-10 15:24:15 +02:00
.env.example Fix compose file 2025-07-27 21:08:23 +02:00
.gitattributes Fresh Laravel install 2025-07-10 15:24:15 +02:00
.gitignore Install Sail 2025-07-10 15:29:39 +02:00
.prettierignore Fresh Laravel install 2025-07-10 15:24:15 +02:00
.prettierrc Fresh Laravel install 2025-07-10 15:24:15 +02:00
artisan Fresh Laravel install 2025-07-10 15:24:15 +02:00
components.json Fresh Laravel install 2025-07-10 15:24:15 +02:00
composer.json Install Sail 2025-07-10 15:29:39 +02:00
eslint.config.js Fresh Laravel install 2025-07-10 15:24:15 +02:00
Jenkinsfile Drop v prefix from docker image tags 2025-07-14 21:24:18 +02:00
LICENSE Clean up 2025-07-13 12:56:16 +02:00
package-lock.json Fresh Laravel install 2025-07-10 15:24:15 +02:00
package.json Fresh Laravel install 2025-07-10 15:24:15 +02:00
phpunit.xml Install Sail 2025-07-10 15:29:39 +02:00
README.md Dev server via podman 2025-07-29 21:27:19 +02:00
tsconfig.json Fresh Laravel install 2025-07-10 15:24:15 +02:00
vite.config.ts Fresh Laravel install 2025-07-10 15:24:15 +02:00

📈 incr

A minimalist investment tracker for VWCE shares with milestone-driven progress

Track your portfolio growth with visual progress indicators and milestone reinforcement

License: GPL v3 Docker Laravel React


IntroductionFeaturesTech StackGetting StartedDevelopmentContributingLicense


Introduction

Incr is a minimalist, one-page investment tracking application designed specifically for VWCE (Vanguard FTSE All-World UCITS ETF) shareholders. It combines the satisfaction of visual progress tracking with practical portfolio management, featuring a distinctive LED-style digital display and milestone-based goal setting.

The application emphasizes simplicity and focus, providing just what you need to track your investment journey without overwhelming complexity.

Features

  • LED-style display: Large red digital counter showing current share count
  • Progress tracking: Visual progress bar toward configurable milestones
  • Purchase management: Add and track share purchases with historical data
  • Financial insights: Portfolio value and withdrawal estimates
  • Milestone cycling: Track progress toward multiple investment goals (1500→3000→4500→6000)

Tech Stack

  • Backend: Laravel 12 (PHP 8.2+) with MySQL database
  • Frontend: React 19 + TypeScript with Inertia.js
  • Styling: Tailwind CSS 4 with shadcn/ui components
  • Deployment: Docker with multi-stage builds

Getting Started

Quick Start (Production)

Docker

Clone the repository and run with Docker Compose:

git clone https://github.com/your-username/incr.git
cd incr

Run the application using the provided docker-compose configuration:

# Using Docker Compose
docker-compose -f docker/production/docker-compose.yml up --build

# Or using Podman Compose  
podman-compose -f docker/production/docker-compose.yml up --build

The application will be available at http://localhost:5001.

Development

Local Development Setup

Option 1: Laravel Sail (Docker)

For local development with Laravel Sail:

# Install Laravel Sail
composer install
sail artisan sail:install

# Start development environment
sail up -d

# Install frontend dependencies and build assets
npm install
npm run dev

# Run migrations
sail artisan migrate

Option 2: Podman Development

For Fedora Atomic or other Podman-based systems:

# Quick start with helper script
bash docker/dev/podman/start-dev.sh

# Or manually:
# Install podman-compose if not available
pip3 install --user podman-compose

# Start development environment
podman-compose -f docker/dev/podman/docker-compose.yml up -d

# Run migrations
podman exec incr-dev-app php artisan migrate

Option 3: Sail with Podman (Compatibility Layer)

To use Laravel Sail commands with Podman:

# Source the alias script
source docker/dev/podman/podman-sail-alias.sh

# Now you can use sail commands as normal
sail up -d
sail artisan migrate
sail npm run dev

The development server will be available at http://localhost with hot reload enabled.

Project Structure

  • app/ - Laravel backend (controllers, models, services)
  • resources/js/ - React frontend components and pages
  • docker/production/ - Production Docker configuration
  • docker/dev/podman/ - Development Podman configuration
  • database/migrations/ - Database schema definitions

Contributing

We welcome contributions to incr! Whether you're reporting bugs, suggesting features, or submitting pull requests, your input helps make this project better.

How to Contribute

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Bug Reports

If you find a bug, please create an issue with:

  • A clear description of the problem
  • Steps to reproduce the issue
  • Expected vs actual behavior
  • Your environment details

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.