2025-07-27 11:37:53 +02:00
< div align = "center" >
2025-07-13 12:56:16 +02:00
2025-07-27 11:37:53 +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*
[](https://www.gnu.org/licenses/gpl-3.0)
[](https://www.docker.com/)
[](https://laravel.com/)
[](https://reactjs.org/)
---
**[Introduction](#introduction) • [Features ](#features ) • [Tech Stack ](#tech-stack ) • [Getting Started ](#getting-started ) • [Development ](#development ) • [Contributing ](#contributing ) • [License ](#license )**
---
< / div >
## 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.
2025-07-13 12:56:16 +02:00
## 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
2025-07-27 11:37:53 +02:00
## Getting Started
### Quick Start (Production)
2025-07-13 12:56:16 +02:00
2025-07-27 16:23:56 +02:00
#### Docker
2025-07-27 21:08:23 +02:00
Clone the repository and run with Docker Compose:
```bash
git clone https://github.com/your-username/incr.git
cd incr
2025-07-27 16:23:56 +02:00
```
2025-07-13 12:56:16 +02:00
2025-07-27 21:08:23 +02:00
Run the application using the provided docker-compose configuration:
2025-07-13 12:56:16 +02:00
2025-07-27 16:23:56 +02:00
```bash
2025-07-27 21:08:23 +02:00
# Using Docker Compose
2025-07-29 21:27:19 +02:00
docker-compose -f docker/production/docker-compose.yml up --build
2025-07-13 12:56:16 +02:00
2025-07-27 21:08:23 +02:00
# Or using Podman Compose
2025-07-29 21:27:19 +02:00
podman-compose -f docker/production/docker-compose.yml up --build
2025-07-27 21:08:23 +02:00
```
2025-07-13 12:56:16 +02:00
2025-07-27 21:08:23 +02:00
The application will be available at `http://localhost:5001` .
2025-07-13 12:56:16 +02:00
2025-07-27 16:23:56 +02:00
### Development
2025-07-27 11:37:53 +02:00
2025-07-27 16:23:56 +02:00
#### Local Development Setup
2025-07-29 21:27:19 +02:00
**Option 1: Laravel Sail (Docker)**
2025-07-13 12:56:16 +02:00
For local development with Laravel Sail:
```bash
# 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
```
2025-07-29 21:27:19 +02:00
**Option 2: Podman Development**
For Fedora Atomic or other Podman-based systems:
```bash
# 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:
```bash
# 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
```
2025-07-13 12:56:16 +02:00
The development server will be available at `http://localhost` with hot reload enabled.
2025-07-27 16:23:56 +02:00
## Project Structure
2025-07-13 12:56:16 +02:00
- `app/` - Laravel backend (controllers, models, services)
- `resources/js/` - React frontend components and pages
2025-07-29 21:27:19 +02:00
- `docker/production/` - Production Docker configuration
- `docker/dev/podman/` - Development Podman configuration
2025-07-13 12:56:16 +02:00
- `database/migrations/` - Database schema definitions
2025-07-27 11:37:53 +02:00
## 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
2025-07-13 12:56:16 +02:00
## License
2025-07-27 16:23:56 +02:00
This project is licensed under the GNU General Public License v3.0 - see the [LICENSE ](LICENSE ) file for details.