This guide will walk you through the process of cloning and setting up this Laravel project on your local machine.
Before you begin, make sure you have the following installed on your system:
- PHP >= 8.1
- Composer (PHP dependency manager)
- Node.js and npm (for frontend assets)
- MySQL or another database supported by Laravel
- Git
Open your terminal and run:
git clone https://github.com/DavidHaryono/Financial-Tracker.git
cd Financial-TrackerInstall all PHP dependencies using Composer:
composer installInstall all frontend dependencies using npm:
npm installLaravel uses a .env file for environment-specific configuration. Copy the example file:
cp .env.example .envGenerate a unique application key:
php artisan key:generateOpen the .env file in your text editor and update the database configuration:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_database_username
DB_PASSWORD=your_database_passwordReplace your_database_name, your_database_username, and your_database_password with your actual database credentials.
This project requires two additional API keys. Add them to your .env file:
OCRSPACE_API_KEY=your_ocrspace_api_key
GROQ_API_KEY=your_groq_api_keyOCR.space provides optical character recognition services.
Option 1: Free API Key (Recommended for Development)
- Visit OCR.space API
- Sign up for a free account
- You'll receive an API key via email
- Copy the API key and paste it in your
.envfile asOCRSPACE_API_KEY
Option 2: Using OCR.space Desktop Application
- Download the OCR.space desktop application from their GitHub releases
- Install the application on your system
- Add the application to your system PATH (optional, for command-line usage)
- If using the desktop version programmatically, configure the path in your application
Groq provides AI language model APIs for fast inference.
- Visit Groq Console
- Sign up for a free account or log in
- Navigate to the API Keys section in your dashboard
- Click "Create API Key"
- Give your key a descriptive name (e.g., "Laravel Project")
- Copy the generated API key
- Paste it in your
.envfile asGROQ_API_KEY
Important: Keep your API keys secure and never commit them to version control!
Create the necessary database tables:
php artisan migrateIf you have seeders to populate initial data:
php artisan db:seedOr run both migrations and seeders together:
php artisan migrate --seedCompile the frontend assets:
For development:
npm run devFor production:
npm run buildCreate a symbolic link from public/storage to storage/app/public:
php artisan storage:linkEnsure the storage and bootstrap/cache directories are writable:
On Linux/Mac:
chmod -R 775 storage bootstrap/cacheOn Windows: Right-click the folders, go to Properties > Security, and ensure appropriate write permissions.
Start the Laravel development server:
php artisan serveThe application will be available at http://localhost:8000
Note: If you're running npm run dev for hot module replacement, you may need to run it in a separate terminal window.
Solution: Run php artisan key:generate
Solution: Verify your database credentials in the .env file and ensure your database server is running
Solution: Ensure proper permissions are set on the storage and bootstrap/cache directories
Solution: Verify that your API keys are correctly set in the .env file and that they're valid
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clearphp artisan testLaravel-Project/
├── app/ # Application core code
├── bootstrap/ # Framework bootstrap files
├── config/ # Configuration files
├── database/ # Database migrations and seeders
├── public/ # Public assets and entry point
├── resources/ # Views, raw assets, and language files
├── routes/ # Application routes
├── storage/ # Generated files and logs
└── tests/ # Automated tests
This project was developed as a collaborative effort. Massive thanks to the team members who built this:
This platform was developed as a collaborative full-stack engineering project. The technical responsibilities and architectural components were divided as follows:
-
David Alexander Haryono
- Architected the core user interface layouts utilizing Blade template component inheritance (
layouts.app) to establish globally unified responsive UI viewports. - Engineered state-driven frontend modal components and dynamic interactive forms for managing complex database requests across
expenses.index,expenses.create, andexpenses.editview modules. - Integrated multi-language display controls leveraging custom dynamic locale injection mappings into template string fields.
- Architected the core user interface layouts utilizing Blade template component inheritance (
-
Diven Dechal Jatiputra
- Built client-side input validation architectures and unified asset compilation using Vite runtime orchestration pipelines (
vite.config.js). - Optimized responsive asset behavior and visual rendering pipelines utilizing customized utility classes across user profile controls and authentication portals.
- Managed responsive form styling layout breakpoints to ensure cross-device consistency during asynchronous transaction submissions.
- Built client-side input validation architectures and unified asset compilation using Vite runtime orchestration pipelines (
-
Benediktus Darmawan
- Constructed the core relational schema foundation, engineering sequential Laravel Migration tables managing primary relationships (
users,expenses,cache, and secure system session token distributions). - Developed the multi-lingual middleware routing pipeline (
LocaleMiddleware), intercepting inbound client traffic to dynamically map matching system data translation properties. - Programmed programmatic security restrictions through active authentication routing rules and custom state verification handlers (
CheckSession).
- Constructed the core relational schema foundation, engineering sequential Laravel Migration tables managing primary relationships (
-
Kneson Surya Wijaya
- Developed robust application runtime microservices, engineering the file-stream processing architecture inside the abstract Receipt Parser Service Engine (
ReceiptParserService). - Implemented database interaction layers using Eloquent ORM models (
User,Expense), mapping transactional mass-assignment configurations, structural database seeding routines, and user profiling query filters. - Maintained backend platform test integrity using automated feature testing blueprints (
Feature/ExampleTest,TestCase) to secure model validation pipelines.
- Developed robust application runtime microservices, engineering the file-stream processing architecture inside the abstract Receipt Parser Service Engine (