ScanIt is a cloud-native receipt scanning and budget management platform that helps users digitise paper receipts, automatically extract transaction details, and gain insights into their spending habits through a web-based dashboard.
scanit-platform/
│
├── app/
│ ├── api/
│ │ ├── src/
│ │ ├── docs/
│ │ ├── Dockerfile
│ │ └── README.md
│ │
│ └── web/
│ ├── src/
│ ├── public/
│ ├── Dockerfile
│ └── README.md
│
├── infrastructure/
│ ├── aws/
│ ├── docker/
│ ├── jenkins/
│ └── README.md
│
├── docs/
│ ├── architecture/
│ ├── diagrams/
│ ├── presentation/
│ └── report/
│
├── .github/
│
└── README.md
Application-specific setup instructions can be found in:
api/README.mdweb/README.mdinfrastructure/README.md
The project follows a simplified Git Flow workflow.
main
│
develop
│
├── feature/*
├── bugfix/*
└── hotfix/*
The main branch contains stable and release-ready code only.
The develop branch serves as the primary integration branch for ongoing development.
Used for implementing new functionality.
Examples:
feature/user-authentication
feature/receipt-upload
feature/ocr-processing
feature/budget-dashboard
Used for fixing non-critical defects.
Examples:
bugfix/login-validation
bugfix/receipt-parser
Used for urgent fixes that affect production-ready code.
Examples:
hotfix/security-patch
hotfix/build-failure
- Pull the latest changes from
develop - Create a new feature branch
- Implement changes
- Commit changes using the commit convention
- Push the branch
- Create a Pull Request to
develop - Request review
- Merge after approval
git checkout develop
git pull origin develop
git checkout -b feature/receipt-uploadgit push -u origin feature/receipt-uploadgit checkout develop
git pull origin developgit checkout feature/receipt-upload
git merge developUse Conventional Commits whenever possible.
feat: add receipt upload endpoint
feat: implement AWS Textract integration
fix: resolve duplicate transaction issue
docs: update project documentation
refactor: simplify OCR service implementation
test: add receipt parser unit tests
ci: update Jenkins pipeline configuration
| Type | Description |
|---|---|
| feat | New feature |
| fix | Bug fix |
| docs | Documentation updates |
| refactor | Code improvements without behaviour changes |
| test | Testing changes |
| ci | CI/CD changes |
| chore | Maintenance tasks |
Before opening a Pull Request:
- Ensure the application builds successfully
- Ensure tests pass
- Keep changes focused on a single feature or fix
- Update documentation when required
- Resolve merge conflicts
- Code compiles successfully
- Tests pass
- Documentation updated
- No unnecessary files included
- Ready for review
A task is considered complete when:
- Feature requirements are implemented
- Code is reviewed
- Tests pass successfully
- Documentation is updated
- Pull Request is approved
- Changes are merged into
develop
- Commit small, focused changes frequently
- Avoid direct commits to
main - Avoid direct commits to
developwhenever possible - Use Pull Requests for all feature work
- Review teammates' code before merging
- Keep documentation updated
Additional project documentation should be stored under the /docs directory.
Suggested contents:
docs/
├── architecture/
├── diagrams/
├── meeting-notes/
├── presentation/
└── report/
PDip in Software Development, Cloud Computing & DevOps
Capstone Project – ScanIt