ClientLedger is a focused SaaS solution designed to solve the administrative chaos faced by freelancers and small agencies. It transforms the messy reality of freelance work—scattered WhatsApp agreements, forgotten payment deadlines, and messy Excel sheets—into a streamlined, professional system of record.
Freelancers are experts in their craft (coding, design, writing), but often amateurs at administration. They face three critical pain points:
- 💸 Revenue Leakage: Money is lost because follow-ups on unpaid invoices are forgotten or delayed.
- ⚖️ Scope Creep & Disputes: Agreements made informally on WhatsApp or email are hard to reference later. "I thought this was included" disputes cost time and money.
- 🧾 Unprofessional Workflows: Managing million-dollar skills with messy spreadsheets or text messages damages client trust.
A centralized dashboard that acts as the Single Source of Truth for every client interaction.
- It’s not just an invoice generator; it is a Contract Lifecycle Manager.
- It’s not just a to-do list; it is a Financial Health Monitor.
| Layer | Technology |
|---|---|
| Frontend | Next.js (React) |
| Backend | Java Spring Boot |
| Database | AWS RDS (MySQL) |
| Infrastructure | Terraform (IaC) |
| Deployment | AWS Cloud with GitHub Actions CI/CD |
To allow GitHub Actions to deploy the project automatically:
- Create an IAM User in AWS with programmatic access.
- Copy the
Access Key IDandSecret Access Key. - Go to your GitHub Repository > Settings > Secrets and variables > Actions.
- Add the following secrets:
AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
Navigate to the infrastructure directory and create the variable definitions file.
cd infrastructure
touch terraform.tfvarsAdd the following variables to terraform.tfvars:
db_username = "your_chosen_username"
db_password = "your_chosen_password"Initialize and apply the Terraform configuration to create the AWS environment (VPC, RDS, Beanstalk, S3, Cognito).
# Initialize Terraform
terraform init
# Review the plan
terraform plan
# Apply the infrastructure
terraform apply --auto-approveOnce terraform apply completes, you will see a list of outputs in your terminal (e.g., NEXT_PUBLIC_API_URL, NEXT_PUBLIC_COGNITO_USER_POOL_ID).
-
Copy ALL outputs that start with NEXT_PUBLIC_.
-
Go to GitHub Secrets (Settings > Secrets and variables > Actions).
-
Create a single new secret named PROD_ENV_FILE.
-
Paste the copied outputs into this secret.
Now that the infrastructure is ready and secrets are set:
-
1Navigate to the Actions tab in GitHub.
-
Select the Deploy Backend to AWS workflow and click Run workflow.
-
Select the Deploy Frontend to S3 workflow and click Run workflow.
To destroy the infrastructure and stop billing:
cd infrastructure
terraform destroy --auto-approve
