This is the official repository for the Scanf() Android app maintained by DevSoc BITS Goa and is a part of the Quark Open Source Initiative.
Creating and managing hand written documents is a big hassle in today's world. Digitization of these kinds of documents for efficient storage is the need of the hour. It's also time consuming to share the hard copies of documents across multiple people. And also, with hard copies we always have security issues and cases when we might loose the documents.
Scanf() solves all these problems by providing an efficient way to digitize and manage documents. Its features include scanning of any documents and storing them as an image or pdf file. The app can also be used to safely share the documents among various people and if needed can also be protected with password encryption. Some other features include direct contact saving from business cards, private vault for storing personal documents, extracting text from images, flattening and filtering images, etc.
- Setting up your development environment
- Commit Messages
- Pull Request Guidelines
- Code Style
- Code Contribution Workflow
- Reach Out
- Admins
-
Download and install Git and add it to your PATH
-
Download and install Android Studio
-
Fork the scanf() project (why and how to fork)
-
Clone your fork of the project locally. At the command line:
git clone https://github.com/YOUR-GITHUB-USERNAME/scanf
If you prefer not to use the command line, you can use Android Studio to create a new project from version control using
https://github.com/YOUR-GITHUB-USERNAME/scanf
. -
Use Android Studio to import the project from its Gradle settings. To run the project, click on the green arrow at the top of the screen.
-
Add an
upstream
remote to your Android Studio from which you will pull your project before pushing any code.
- Commit messages are communication and documentation. They're a log of more than just what happened, they're about why it was done.
- The longer a project is active, the more people involved, the larger the codebase, the more important it is to have good commit messages.
- Make sure every change that you make is well documented and is included in your commit message.
- One commit should have only one change. (A change may include multiple file changes that are essential to solving the issue/change).
- All commit messages should be in the imperative-present tense. After all, you are telling us what you have already done.
- The subject line should be a one-sentence summary, and should not include the word and (explicitly or implied).
- Any extra detail should be provided in the body of the PR.
- Don't submit unrelated changes in the same pull request.
- Make sure you follow the code style
The complete project will follow MVVM architecture. All variables should have proper names. There should be no textview1
or edittext2
view names AT ALL.
- All class or interface names should be camel-cased and should start with an upper-case letter.
- All field names, variable names, and method names should be camel-cased and should start with a lower-case letter.
- All constant names should be in ALL-CAPS with snake-casing.
- Every loop, if/else block or method branching should have a proper 4-spaced-tab indentation.
- All strings, colors, and dimensions should be placed in
strings.xml
,colors.xml
anddimens.xml
respectively and should be referenced from there only. - All IDs should be completely lower-cased and snake-casing should be used.
- Every nested Layout/View should have a proper 4-spaced-tab indentation.
- Clone your repository.
- Make your changes.
- Push changes to your repository.
- Make a pull-request to the respective branch only.
- The pull-request will be checked by the core/admins.
- If there are issues found in the PR, you will be asked to make changes again, and push them. YOU DO NOT NEED TO MAKE A NEW PULL REQUEST. Just push changes to your repository and the newest commits will be reflected in your pull-request automatically.
- If your code is satisfactory, it will be added to the main repository.
Ping any of us admins for review or queries.
Happy Coding! <3