A Java-based Android application. Capture is a real-time social diary that lets you stay truly connected with your closest friends. Share spontaneous photos and thoughts directly to your friends' home screens – as it happens. No filters, no algorithms, just raw, real-life moments.
Whether it's a quick smile or a funny thought – Capture makes every little moment meaningful. It's not about likes or followers. It's about living and sharing life together, in real time.
For a detailed visual presentation of our project, check out our Project Overview on Canva.
- Take, post real-time pictures
- Like, share, comments on posts
- Lightweight, fast, and privacy-focused
- Phuong Khanh Pham
- Natthanicha Vongjarit
- Debojyoti Mishra
- Bui Tien Quoc
- Language: Java
- Platform: Android SDK (API level 26+)
- IDE: Android Studio
- Version Control: Git + GitHub
- CI/CD: GitHub Actions
This project follows a standard Git-flow inspired branching strategy:
- main: The main branch contains production-ready code. Only stable, tested code should be merged here.
- develop: The development branch is where all feature branches are merged. This branch contains the latest development changes.
- feature/*: Feature branches should be created from develop and merged back into develop when complete.
- bugfix/*: Bug fix branches should be created from develop for issues found in development.
- hotfix/*: Hotfix branches should be created from main for urgent production fixes and merged to both main and develop.
-
For new features:
- Create a feature branch from develop:
git checkout -b feature/feature-name develop
- Make your changes and commit
- Push to GitHub:
git push -u origin feature/feature-name
- Create a Pull Request to merge into develop
- Create a feature branch from develop:
-
For bug fixes in development:
- Create a bugfix branch from develop:
git checkout -b bugfix/bug-name develop
- Fix the bug and commit
- Push to GitHub:
git push -u origin bugfix/bug-name
- Create a Pull Request to merge into develop
- Create a bugfix branch from develop:
-
For urgent production fixes:
- Create a hotfix branch from main:
git checkout -b hotfix/issue-name main
- Fix the issue and commit
- Push to GitHub:
git push -u origin hotfix/issue-name
- Create Pull Requests to merge into both main and develop
- Create a hotfix branch from main:
This project follows the Conventional Commits specification for commit messages. All commit messages must follow this format:
<type>(<scope>): <subject>
For example:
feat(camera): add support for front camera switching
fix(login): resolve issue with password validation
docs(readme): update installation instructions
A git hook is in place to enforce this convention. See Commit Convention for details.
After cloning the repository, run the setup script to install the git hooks:
./scripts/setup-hooks.sh
This will set up the commit message hook that enforces the conventional commit format.
When the develop branch is stable and ready for release:
- Create a release branch:
git checkout -b release/vX.Y.Z develop
- Make any final adjustments or version bumps
- Merge to main: Create a Pull Request from release/vX.Y.Z to main
- Tag the release:
git tag -a vX.Y.Z -m "Release vX.Y.Z"
- Merge back to develop: Create a Pull Request from release/vX.Y.Z to develop
- Delete the release branch when done
- Android Studio Iguana (2023.2.1) or newer
- JDK 17 or higher
- Android SDK with minimum API level 26 (Android 8.0 Oreo)
- Git
-
Clone the repository:
git clone https://github.com/arcreane/android-project-pineapple.git cd android-project-pineapple
-
Set up the git hooks:
./scripts/setup-hooks.sh
-
Open the project in Android Studio:
- Launch Android Studio
- Select "Open an existing project"
- Navigate to the cloned repository and click "Open"
-
Sync the project with Gradle files:
- Android Studio should automatically sync
- If not, select "File > Sync Project with Gradle Files"
-
Run the app:
- Connect an Android device or use an emulator
- Click the "Run" button (green triangle) in Android Studio
- If you encounter Gradle sync issues, ensure you have the correct JDK version
- For build errors, check the "Build" tab in Android Studio for specific error messages
- If GitHub Actions CI builds fail but local builds succeed, check Java version compatibility
-
Fork the repository on GitHub:
- Visit the repository page on GitHub
- Click the "Fork" button in the top-right corner
- Select your account as the destination
-
Clone your forked repository:
git clone https://github.com/YOUR_USERNAME/android-project-pineapple.git cd android-project-pineapple
-
Add the original repository as upstream:
git remote add upstream https://github.com/arcreane/android-project-pineapple.git
-
Sync your local develop branch:
git checkout develop git pull upstream develop git push origin develop
-
Create a new feature branch:
git checkout -b feature/your-feature-name develop
Branch naming convention:
feature/*
for new featuresbugfix/*
for bug fixesdocs/*
for documentation changeshotfix/*
for urgent production fixes
-
Make your changes:
- Write clear, concise commit messages following our convention:
git commit -m "type(scope): description"
- Types: feat, fix, docs, style, refactor, test, chore
- Example:
git commit -m "feat(login): add biometric authentication"
- Write clear, concise commit messages following our convention:
-
Push your changes:
git push -u origin feature/your-feature-name
-
Create a Pull Request:
- Go to the original repository on GitHub
- Click "Pull Requests" > "New Pull Request"
- Select
develop
as the base branch - Write a clear PR description explaining your changes
- Link any related issues
-
Address review feedback:
- Make requested changes in your feature branch
- Commit and push updates
- The PR will update automatically
-
After PR is merged:
git checkout develop git pull upstream develop git push origin develop git branch -d feature/your-feature-name
- Keep PRs focused and reasonably sized
- Update your feature branch regularly with develop
- Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
- Ensure CI checks pass before requesting review