diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dcbb020 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.obsidian/ + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..43a0b33 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,131 @@ +# Contributing Guidelines + +_Pull requests, bug reports, and all other forms of contribution are welcomed and highly encouraged!_ :octocat: + +### Contents + +- [Asking Questions](#bulb-asking-questions) +- [Opening an Issue](#inbox_tray-opening-an-issue) +- [Feature Requests](#love_letter-feature-requests) +- [Triaging Issues](#mag-triaging-issues) +- [Submitting Pull Requests](#repeat-submitting-pull-requests) +- [Writing Commit Messages](#memo-writing-commit-messages) +- [Code Review](#white_check_mark-code-review) +- [Certificate of Origin](#medal_sports-certificate-of-origin) +- [Credits](#pray-credits) + +> **This guide serves to set clear expectations for everyone involved with the project so that we can improve it together while also creating a welcoming space for everyone to participate. Following these guidelines will help ensure a positive experience for contributors and maintainers.** + +## :bulb: Asking Questions + +See our [Community](https://t.me/passcodescommunity) on telegram we appricate your question over there. In short, GitHub issues are not the appropriate place to debug your specific question, but should be reserved for filing bugs and feature requests. + +## :inbox_tray: Opening an Issue + +Before [creating an issue](https://github.com/PasscodesApp/Passcodes/issues/new), check if you are using the latest version of the project. If you are not up-to-date, see if updating fixes your issue first. + +### :lock: Reporting Security Issues + +Review our [Security Policy](SECURITY.md). **Do not** file a public issue for security vulnerabilities. + +### :beetle: Bug Reports and Other Issues + +A great way to contribute to the project is to send a detailed issue when you encounter a problem. We always appreciate a well-written, thorough bug report. :v: + +In short, since you are most likely a developer, **provide a ticket that you would like to receive**. + +- **Review the Documentation and Support Guide** before opening a new issue. + +- **Do not open a duplicate issue!** Search through existing issues to see if your issue has previously been reported. If your issue exists, comment with any additional information you have. You may simply note "I have this problem too", which helps prioritize the most common problems and requests. + +- **Prefer using [reactions](https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/)**, not comments, if you simply want to "+1" an existing issue. + +- **Use [GitHub-flavored Markdown](https://help.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax).** Especially put code blocks and console outputs in backticks (```). This improves readability. + +## :love_letter: Feature Requests + +Feature requests are welcome! While we will consider all requests, we cannot guarantee your request will be accepted. We want to avoid [feature creep](https://en.wikipedia.org/wiki/Feature_creep). Your idea may be great, but also out-of-scope for the project. If accepted, we cannot make any commitments regarding the timeline for implementation and release. However, you are welcome to submit a pull request to help! + +- **Do not open a duplicate feature request.** Search for existing feature requests first. If you find your feature (or one very similar) previously requested, comment on that issue. + +- Be precise about the proposed outcome of the feature and how it relates to existing features. Include implementation details if possible. + +## :mag: Triaging Issues + +You can triage issues which may include reproducing bug reports or asking for additional information, such as version numbers or reproduction instructions. Any help you can provide to quickly resolve an issue is very much appreciated! + +## :repeat: Submitting Pull Requests + +We **love** pull requests! Before [forking the repo](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) and [creating a pull request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/proposing-changes-to-your-work-with-pull-requests) for non-trivial changes, it is usually best to first open an issue to discuss the changes, or discuss your intended approach for solving the problem in the comments for an existing issue. + +For most contributions, after your first pull request is accepted and merged, you will be [invited to the project](https://help.github.com/en/github/setting-up-and-managing-your-github-user-account/inviting-collaborators-to-a-personal-repository) and given **push access**. :tada: + +_Note: All contributions will be licensed under the project's license._ + +- **Smaller is better.** Submit **one** pull request per bug fix or feature. A pull request should contain isolated changes pertaining to a single bug fix or feature implementation. **Do not** refactor or reformat code that is unrelated to your change. It is better to **submit many small pull requests** rather than a single large one. Enormous pull requests will take enormous amounts of time to review, or may be rejected altogether. + +- **Coordinate bigger changes.** For large and non-trivial changes, open an issue to discuss a strategy with the maintainers. Otherwise, you risk doing a lot of work for nothing! + +- **Prioritize understanding over cleverness.** Write code clearly and concisely. Remember that source code usually gets written once and read often. Ensure the code is clear to the reader. The purpose and logic should be obvious to a reasonably skilled developer, otherwise you should add a comment that explains it. + +- **Follow existing coding style and conventions.** Keep your code consistent with the style, formatting, and conventions in the rest of the code base. Consistency makes it easier to review and modify in the future. + +- **Update the example project** if one exists to exercise any new functionality you have added. + +- **Add documentation.** Document your changes with code doc comments or in existing guides. + +- **Update the CHANGELOG** for all enhancements and bug fixes. Include the corresponding issue number if one exists, and your GitHub username. (example: "- Fixed crash in profile view. #123 @jessesquires") + +- **Use the repo's default branch.** Branch from and [submit your pull request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork) to the repo's default branch. `main`. + +- **[Resolve any merge conflicts](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/resolving-a-merge-conflict-on-github)** that occur. + +- **Promptly address any CI failures**. If your pull request fails to build or pass tests, please push another commit to fix it. + +- When writing comments, use properly constructed sentences, including punctuation. + +- Use spaces, not tabs. + +## :memo: Writing Commit Messages + +Please [write a great commit message](https://gist.github.com/joshbuchea/6f47e86d2510bce28f8e7f42ae84c716), we follow sematic commits but, don't enfore them. + +## :white_check_mark: Code Review + +- **Review the code, not the author.** Look for and suggest improvements without disparaging or insulting the author. Provide actionable feedback and explain your reasoning. + +- **You are not your code.** When your code is critiqued, questioned, or constructively criticized, remember that you are not your code. Do not take code review personally. + +- **Always do your best.** No one writes bugs on purpose. Do your best, and learn from your mistakes. + +- Kindly note any violations to the guidelines specified in this document. + +## :medal_sports: Certificate of Origin + +_Developer's Certificate of Origin 1.1_ + +By making a contribution to this project, I certify that: + +> I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. + +## [No Brown M&M's](https://en.wikipedia.org/wiki/Van_Halen#Contract_riders) + +If you are reading this, bravo dear user and (hopefully) contributor for making it this far! You are awesome. :100: + +To confirm that you have read this guide and are following it as best as possible, **include this emoji at the top** of your issue or pull request: :black_heart: `:black_heart:` + +## :pray: Credits + +Written by [@jessesquires](https://github.com/jessesquires). + +**Please feel free to adopt this guide in your own projects. Fork it wholesale or remix it for your needs.** + +_Many of the ideas and prose for the statements in this document were based on or inspired by work from the following communities:_ + +- [Alamofire](https://github.com/Alamofire/Alamofire/blob/master/CONTRIBUTING.md) +- [CocoaPods](https://github.com/CocoaPods/CocoaPods/blob/master/CONTRIBUTING.md) +- [Docker](https://github.com/moby/moby/blob/master/CONTRIBUTING.md) +- [Linux](https://elinux.org/Developer_Certificate_Of_Origin) + +_We commend them for their efforts to facilitate collaboration in their projects._ + diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..3910f83 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Jeel Dobariya + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 4795b0b..1af8eb5 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,25 @@ This repository contains Developers Docs, Support Docs & User Guide For Passcode > The Docs might have outdated (behind time) or forward (ahead of time) info (may be by a week).. > So, it always good to verify stuff.. by see the code... because we as developer of passcodes focus on code.. and documenation is our second priority.. -We recommend using / opening, this docs in [obsidian.md](obsidian.md) for better exprience in navigating as It made in obsidian app.. +## Tips & Recommendation -if you thing you gonna use it a lot otherwise in github in browser is fine as well. +We recommend using / opening, this docs in [obsidian.md](https://obsidian.md) for better experience in navigating as It made in obsidian app.. + +if you thing you gonna use it a lot otherwise in GitHub in browser is fine as well. + +## Best Practices We Follow + +- Use lowercase character for docs file / directory name. +- Use hyphens for docs file / directory name. +- Also try to separate and organize docs as much as possible.. like a hierarchy. (don't fear nested structure). +- Avoid rename file once created because there might URL point to it... from app and various source which once publish can;t change.. (but if you have a strong reason break this rule). + +## Contirbuting to Docs + +This works same as contributing to repository.. create your branch in this repo, make changes and submit a pr.. Always refer to [CONTRIBUTING.md](CONTRIBUTING.md) + +## Note + +Here, You will find all the docs releated to the `Passcodes` and other project under `PasscodesApp` github organization.. +This is single place that you need refer, for any docs or updates.. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..83d1c6a --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,8 @@ +# Security Policy + +## Reporting a Vulnerability + +Report a vulnerability on a maintainer email. don't create a github issue or report publicly. + +- `dobariyaj34@gmail.com` +- `achmad24daniel@gmail.com` diff --git a/database-design-docs/README.md b/database-design-docs/README.md new file mode 100644 index 0000000..92116a7 --- /dev/null +++ b/database-design-docs/README.md @@ -0,0 +1,10 @@ +In this directory, You will find the general structure & format in which app stores users data. Also you will you will find different schema of database. + +> Some feature are not supported in SQLite and some might be specific to some database. but as a developer we will try our best to abstract away database concept (from front-end) as much as possible by separating database functionality in a separate module. and front-end will just call as simple as method like `savePassword()` or `loadPassword()` or something along that lines... to communicate with database... + +> [!NOTE] +> Database schema versioning system is completely separate from the app versioning system. + +## List Of Databases + +- Master Database [(master.db)](master.db/README.md) diff --git a/database-design-docs/master.db/README.md b/database-design-docs/master.db/README.md new file mode 100644 index 0000000..02c4b9e --- /dev/null +++ b/database-design-docs/master.db/README.md @@ -0,0 +1,7 @@ +# Master Database (master.db) + +**Database**: SQLite(`master.db`) + +It is a database where user info is stored. It schema changes often between the app versions, based on changes in feature requirements. Here, in this section you will find all the version of database schema & will also find info about how we adopted to the new schema. + +- [v1](v1.md) diff --git a/database-design-docs/master.db/v0.md b/database-design-docs/master.db/v0.md new file mode 100644 index 0000000..8535b81 --- /dev/null +++ b/database-design-docs/master.db/v0.md @@ -0,0 +1,37 @@ +# v0 + +> Used By: `v0.1.0` +> Purpose: Build For Prototyping.... + +## Tables + +| Tables | Description | +| ----------- | ---------------------------- | +| `passwords` | For storing password entity. | + +## Passwords Table (`passwords`) + +| Fields | Property | Constraints | Description | +| ----------- | ------------ | ------------------------------ | -------------------------------------------------------------------- | +| `id` | Integer | PRIMARY KEY, AUTOINCREMENT | -- | +| `domain` | VarChar(40) | NOT NULL | domain/platform name to which password entity is associated with. | +| `username` | VarChar(60) | NOT NULL | username on that domain/platform. email can be even used as a value. | +| `password` | VarChar(60) | NOT NULL | password on that domain/platform | +| `notes` | VarChar(100) | -- | -- | +| `createdat` | Date | DEFAULT CURRENT_TIMESTAMP | -- | +| `updatedat` | Date | DEFAULT CURRENT_TIMESTAMP | -- | + +## Setup SQL + +```sql +CREATE TABLE IF NOT EXISTS passwords ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + domain VARCHAR(40) NOT NULL, + username VARCHAR(60) NOT NULL, + password VARCHAR(60) NOT NULL, + notes VARCHAR(100), + createdat DATE DEFAULT CURRENT_TIMESTAMP, + updatedat DATE DEFAULT CURRENT_TIMESTAMP +); +``` + diff --git a/database-design-docs/master.db/v1.md b/database-design-docs/master.db/v1.md new file mode 100644 index 0000000..6040ef3 --- /dev/null +++ b/database-design-docs/master.db/v1.md @@ -0,0 +1,37 @@ +# v1 + +> Used by: `v1.0.0` => `v1.1.1` +> Purpose: Initial Schema + +# Tables + +| Tables | Description | +| ----------- | ---------------------------- | +| `passwords` | For storing password entity. | + +## Passwords Table (`passwords`) + +| Fields | Property | Constraints | Description | +| ------------ | -------- | -------------------------- | ------------------------------------------------------------------------------------------------------- | +| `id` | Integer | PRIMARY KEY, AUTOINCREMENT | -- | +| `domain` | Text | NOT NULL | domain/platform name to which password enitity is associated with. | +| `username` | Text | NOT NULL | username on that domain / platform. email can be even used as a value. | +| `password` | Text | NOT NULL | password for that specfic username on that specfic domain / platform. | +| `notes` | Text | NOT NULL | notes that you wanna take for that record. more like be some information about account on that platform | +| `created_at` | Text | DEFAULT CURRENT_TIMESTAMP | -- | +| `updated_at` | Text | DEFAULT CURRENT_TIMESTAMP | -- | + +## Setup SQL + +```sql +CREATE TABLE IF NOT EXISTS passwords ( + `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + `domain` TEXT NOT NULL, + `username` TEXT NOT NULL, + `password` TEXT NOT NULL, + `notes` TEXT NOT NULL, + `created_at` TEXT DEFAULT CURRENT_TIMESTAMP, + `updated_at` TEXT DEFAULT CURRENT_TIMESTAMP +); +``` + diff --git a/dev-docs/building.md b/dev-docs/building.md new file mode 100644 index 0000000..e8761fd --- /dev/null +++ b/dev-docs/building.md @@ -0,0 +1,89 @@ +# Detail Guide On Building Project + +> [!NOTE] +> This guide apply for `[PasscodesApp/Passcodes](https://github.com/PasscodesApp/Passcodes)` repository + +> [!warning] +> The script `installondevice.bat` itself is deprecated by developers, +> But, it still may works!! We will provide a new solution, more likely a `powershell` more robust script soon. +> Which directly integrate with modern windows 11. and has more features.. though this script will remains as it. + +Here, you will get the details about how to build the app (in recommended way). + +Note: This docs file assume that, you are build the project without android studio and with the `installondevice.bat` script provided. + +## Prerequisites + +You will need `gradle` and `adb` accessible from command-line so, that script can do its job. + +```powershell +adb --version +``` + +and + +```powershell +cd passcodes +./gradlew --version +``` + +Something like this... + +```powershell +PS D:\####\####\passcodes> adb --version +Android Debug Bridge version 1.0.41 +Version 35.0.2-12147458 +Installed as D:\####\####\lib\platform-tools\adb.exe +Running on Windows 10.0.26100 + +PS D:\####\####\passcodes> ./gradlew --version + +------------------------------------------------------------ +Gradle 8.14.3 +------------------------------------------------------------ + +Build time: 2025-07-04 13:15:44 UTC +Revision: e5ee1df3d88b8ca3a8074787a94f373e3090e1db + +Kotlin: 2.0.21 +Groovy: 3.0.24 +Ant: Apache Ant(TM) version 1.10.15 compiled on August 25 2024 +Launcher JVM: 17.0.12 (Oracle Corporation 17.0.12+8-LTS-286) +Daemon JVM: C:\Program Files\Java\jdk-17 (no JDK specified, using current Java home) +OS: Windows 11 10.0 amd64 +``` + +## Preparing For A Build. + +Here, are the things you required, first you will need a `keystore.properties` & `passcodes.jks` in project root. So, that the script can be able to sign the apk file when generated. Second thing you might need is a mobile device with USB debugging enable, connected to your machine, because script install the app directly using `adb`. + +### Template For `keystore.properties` + +``` +keyAlias=passcodes +keyPassword= +storeFile=./../passcodes.jks +storePassword= +``` + +**Fill the `keyPassword` and `storePassword`** and you are good to go. + +## Deprecated: Finial Run Script For Building + +> [!warning] +> The script `installondevice.bat` itself is deprecated by developers, +> But it still may works!! + +You can build the app for production and dev version. + +- Development Builds + +```powershell +./installondevice.bat +``` + +- Production Builds + +```powershell +./installondevice.bat prod +``` diff --git a/dev-docs/release-workflow.md b/dev-docs/release-workflow.md new file mode 100644 index 0000000..86e2dfb --- /dev/null +++ b/dev-docs/release-workflow.md @@ -0,0 +1,25 @@ +# Release Workflow + +In this file, you will find documented process about, how we release, new version of a app. + +> [!IMPORTANT] +> this is not a practice that we follow top to bottom. +> but it is rather, what our pre-release process look like.. (most of time) + +1. We follow, so called `Main as Production Environment`. So, during the time of release we test the main branch code. + +2. Updated the Code where ever need. (code that refer to previous version). + +3. Make Documentation up-to-date. (document the main change in app from user point of view). + +4. Update `changelog.md`. + +5. Draft a new release with all apk files uploaded (signed apks). + +6. Discuss on community and check & test release app on various parameters and + + - We run unit tests. + - We run android tests. + - And of-course, we internally as developers also test it (manually). + +7. Then release it. diff --git a/essentials/bug-report-template.md b/essentials/bug-report-template.md new file mode 100644 index 0000000..1564c1a --- /dev/null +++ b/essentials/bug-report-template.md @@ -0,0 +1,39 @@ +--- +name: Bug Report +about: Create a report to help us improve +title: "Bug Report: [Give a title for bug]" +labels: bug +assignees: JeelDobariya38 +--- + +## Describe the bug: + +A clear and concise description of what the bug is. + +## To Reproduce: + +Steps to reproduce the behavior: + +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +## Expected behavior: + +A clear and concise description of what you expected to happen, if the bug was not there. + +## Screenshots: + +If applicable, add screenshots to help explain your problem. + +## Smartphone (please complete the following information): + +- Device: [e.g. Google Pixel 9] +- Android Version: [e.g. 14] +- App Version: [e.g. v0.1.0] + +## Additional Context: + +Add any other context about the problem here. + diff --git a/essentials/commit-msg-git-hook-template.md b/essentials/commit-msg-git-hook-template.md new file mode 100644 index 0000000..5a2c066 --- /dev/null +++ b/essentials/commit-msg-git-hook-template.md @@ -0,0 +1,56 @@ +1. Copy the script below into your repository's `.git/hooks/commit-msg` file. + +2. Make the script executable by running: `chmod +x .git/hooks/commit-msg` + +Start committing! The hook will automatically validate your commit messages. + + +```bash +#!/usr/bin/env bash + +# Path to the commit message file (provided by Git). +COMMIT_MSG_FILE=$1 + +# Ignore automatic commit messages containing ' into ' or 'Merge'. +if grep --quiet --extended-regexp " into |^Merge " "$COMMIT_MSG_FILE"; then + exit 0 +fi + +# Read the commit message from the file. +COMMIT_MSG=$(cat "$COMMIT_MSG_FILE") + +CONVENTIONAL_COMMIT_REGEX='^(feat|fix|docs|style|refactor|test|chore|build|ci|perf|revert)(\([a-z0-9_.-]+\))?(!)?:\s.*$' + +# Check if the commit message matches the regex. +if ! [[ $COMMIT_MSG =~ $CONVENTIONAL_COMMIT_REGEX ]]; then + echo "ERROR: Commit message does not follow Conventional Commits format." + echo + echo "The commit message should be structured as follows:" + echo "(): " + echo "[optional body]" + echo "[optional footer(s)]" + echo + echo "Valid types are:" + echo " feat: A new feature." + echo " fix: A bug fix." + echo " docs: Documentation changes." + echo " style: Code style changes (formatting, missing semicolons, etc.)." + echo " refactor: Code refactoring (neither fixes a bug nor adds a feature)." + echo " test: Adding or updating tests." + echo " chore: Routine tasks like updating dependencies or build tools." + echo " build: Changes affecting the build system or external dependencies." + echo " ci: Changes to CI configuration files or scripts." + echo " perf: Performance improvements." + echo " revert: Reverting a previous commit." + echo + echo "Examples:" + echo " feat(auth): add login functionality" + echo " fix(api)!: resolve timeout issue" + echo " docs(readme): update installation instructions" + echo + exit 1 +fi + +exit 0 +``` + diff --git a/essentials/feature-request-template.md b/essentials/feature-request-template.md new file mode 100644 index 0000000..0372ac0 --- /dev/null +++ b/essentials/feature-request-template.md @@ -0,0 +1,20 @@ +--- +name: Feature Request +about: Suggest an idea for this project +title: "Feature Request: [Your feature name]" +labels: "" +assignees: JeelDobariya38 +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. + diff --git a/essentials/feedback-question-help-wanted-template.md b/essentials/feedback-question-help-wanted-template.md new file mode 100644 index 0000000..a9f92de --- /dev/null +++ b/essentials/feedback-question-help-wanted-template.md @@ -0,0 +1,29 @@ +--- +name: FeedBack / Question / Help Wanted +about: Describe your question, thought or feedback regarding passcodes project +title: General Concerns +labels: question +assignees: "" +--- + +> ![Note] +> For faster, more casual, chat like conversation join our telegram community.. + +## Overview + +describe in short paragraph, what you are write or what question or concern you have.. + +## Required Information + +- **Are your concerns related to?** Security / Customization / Something Else +- **What is app version you use?** ............ +- **What is the device and what version of android you use?** ......... + +## Thoughts + +describe your thought and feedback related to app. if you have question then delete this section and fill the question section... + +## Question + +describe your question or your concern if any... + diff --git a/essentials/pull-request-template.md b/essentials/pull-request-template.md new file mode 100644 index 0000000..867bd49 --- /dev/null +++ b/essentials/pull-request-template.md @@ -0,0 +1,20 @@ +# Changes Made + +- summary 1. +- summary 2. +- ... + +> summary here should be in one line (write consise so that review without take look at code, can say/determine what changed).. +> they should provide structure overview that read and understand what changed +> not a detail guide, you can provide further infomation in notes section or it would be expictily ask in pr comments at review if need..) + + +# Breaking Changes + +- [Write about any breaking changes, like architure change or databse changes etc.. If none, remove the sectio compeletly]. + + +## Notes + +[if any, otherwise remove the section] + diff --git a/essentials/release-template.yml b/essentials/release-template.yml new file mode 100644 index 0000000..1a0ff4f --- /dev/null +++ b/essentials/release-template.yml @@ -0,0 +1,25 @@ +# .github/release.yml + +changelog: + categories: + - title: Highlights 🌟 + labels: + - highlights + + - title: New Features 🚀 + labels: + - feature + - enhancement + + - title: Bug Fixes 🐛 + labels: + - bug + + - title: Documentation 📚 + labels: + - documentation + + - title: Other Changes + labels: + - "*" + diff --git a/essentials/rulesets-template/Main as Production Env.json b/essentials/rulesets-template/Main as Production Env.json new file mode 100644 index 0000000..6d712aa --- /dev/null +++ b/essentials/rulesets-template/Main as Production Env.json @@ -0,0 +1,47 @@ +{ + "id": 1336632, + "name": "Main as Production Env", + "target": "branch", + "source_type": "Repository", + "source": "PasscodesApp/Passcodes", + "enforcement": "active", + "conditions": { + "ref_name": { + "exclude": [], + "include": [ + "~DEFAULT_BRANCH" + ] + } + }, + "rules": [ + { + "type": "deletion" + }, + { + "type": "non_fast_forward" + }, + { + "type": "pull_request", + "parameters": { + "required_approving_review_count": 1, + "dismiss_stale_reviews_on_push": false, + "require_code_owner_review": false, + "require_last_push_approval": true, + "required_review_thread_resolution": false, + "automatic_copilot_code_review_enabled": false, + "allowed_merge_methods": [ + "merge", + "squash", + "rebase" + ] + } + } + ], + "bypass_actors": [ + { + "actor_id": null, + "actor_type": "OrganizationAdmin", + "bypass_mode": "pull_request" + } + ] +} \ No newline at end of file diff --git a/essentials/rulesets-template/Release Protection.json b/essentials/rulesets-template/Release Protection.json new file mode 100644 index 0000000..afa0094 --- /dev/null +++ b/essentials/rulesets-template/Release Protection.json @@ -0,0 +1,25 @@ +{ + "id": 1443670, + "name": "Release Protection", + "target": "tag", + "source_type": "Repository", + "source": "PasscodesApp/Passcodes", + "enforcement": "active", + "conditions": { + "ref_name": { + "exclude": [], + "include": [ + "~ALL" + ] + } + }, + "rules": [ + { + "type": "deletion" + }, + { + "type": "non_fast_forward" + } + ], + "bypass_actors": [] +} \ No newline at end of file diff --git a/other-docs/open-contributing-timeline.md b/other-docs/open-contributing-timeline.md new file mode 100644 index 0000000..6581efb --- /dev/null +++ b/other-docs/open-contributing-timeline.md @@ -0,0 +1,69 @@ +# Open Contributing Timeline + +This file will provide from when and where, the repository will be able to accept external contribution from other developers and community.. +This will provide you the abstract idea / timeline, that you can look at and see, how much you need to wait, to contribute, +Besides, it help cordinate the contribution process.... Also, we aim to provide you a clear timeline... And lay a path forward.. + + +> [!NOTE] +> You can current still contribute to the repository, if you plan to do so... But just keep in mind that, while do so, you may feel like everything is behind you, +> and fight against you.. and this will slow you down.. also expect, less streamline process and you also expect some of your time waste.. +> +> But, I will try my best to help as much as possible, on our telegram community.. to get you start on working.. but just keep this document and this entire thing in mind... + + +## Steps Required To Cordinate Open Contributing... + +- [X] Obviously, Idea!! (Aug 1, 2024) + +- [X] Setup Github Repository (Personal Account) (Aug 5, 2024) + +- [X] Make Prototype Release aka Proof Of Concept (Aug 26, 2024) + +- [X] `JeelDobariya38/Password-Manager` -> `JeelDobariya38/Passcodes` & Community Standards For Repository. (Aug 1, 2025) + +> Somehow, it is exactly after year!! [#17](https://github.com/PasscodesApp/Passcodes/pull/17) I just realized while write this document.. + +- [X] Migrate Codebase: `Java -> Kotlin` (Aug 1, 2025) + +- [X] First Stable Release (Aug 16, 2025) + +- [X] Offically Organization on Github [JeelDobariya38 -> PasscodesApp](https://github.com/PasscodesApp) (Aug 31, 2025) + +- [ ] Improve Structure & Organization.. i.e segregate app code, docs and website into different stuff (end of sep 2025) + +- [ ] `MVC -> MVVM` architecture update.. i.e current is more like mvc we move to mvvm as it is an industry standard (end of oct 2025) + +- [ ] `XML -> Jetpack Compose` (end of nov 2025) + +- [ ] Documentation Update (in entire december) + +- [ ] Plan for Google Developer Verification, i mean we will discuss about it. (in december how manage or cordinate with it) + +- [ ] Open For Contribute (Roughly, 31 Dec, end of 2025) + +--- + +### Semi Open To Contribute (start of jan 2026) + +> [!IMPORTANT] +> The Organisation is from this point, open to receive any contribution from any potential contributors.. +> +> The reason, it is not fully open to contributing is solely because of this developer verification thing... the thing is I don't want anyone to waste there time contributing to this repository.. because, I might end up not make verification due to some or other reason... and this might result in waste of other developer waste of there valuable time.. because without verification the application might not be release as google wouldn't allow it to install on android devices.... +> +> Other then this, or If this thing doesn't impact you in anyway then you count the repository as fuly open to contribute but just have note of it.. + +- [ ] Find Contributor, Also Review & Update The Contribution Workflow & Get Feedback. (end mar 2026) + +- [ ] Me, Doing Developer Verification Of `JeelDobariya38`... (can't say how time it takes but probably it completely by mid of july 2026) + +- [ ] Open To Contribution (Aug, 2025) + +--- + +### Open To Contribution + +> [!NOTE] +> Further improvements to contributing workflow will driven by feedback and contributor input... +> +> As cordinating contribution is a contiguous process and not a task that can not be done... diff --git a/other-docs/project-overview.md b/other-docs/project-overview.md new file mode 100644 index 0000000..28e4ab6 --- /dev/null +++ b/other-docs/project-overview.md @@ -0,0 +1,93 @@ +# Passcodes Project + +An app that take down your headache of remembering password and auth related sensitive information in your head.. It is a secure and robust solution that not only, let you store password in a local storage. but also make the experience, much more fun and initiative.. + +## Outline + +- [Problem Statement](#problem-statement) +- [Goals](#goals) +- [Target Users](#target-users) +- [Priority](#priority) + +## Problem Statement + +In modern days, data is important, especially data that has concern with auth information.. and store them securely is a serious task (and much of headache). Passcodes try to eliminate this headache. by provide you a simple, sweet and initiative ui that help you store your password in local storage. (and to extend also in cloud). `which means, you have full control of data you share with passcodes app`. + +## Goals + +- To make password management process much more intuitive, enjoying, customizable & secure. By give you full (or utter more) control over your auth data. (that is shared or stored in passcodes app). +- To simplify password management, yet give extensive control to end users. +- To serve as guide, reference & extensible tool, for all people (nerds) who are interested in making there password management workflow, much more safe, secure and customizable. + +## Target Users + +1. `Not So Developer, Not So Normal-End-User` First: + + Which means, + + - For those, who wish to optimize, there password management workflow.. but don;t how to... + - For those, who are willing to spend time learning a tool (specifically for password management) & for those how are willing to uncover (disambiguate) abstraction that app uses to make the experience of storing passwords with passcodes much more simpler... + - For those, who are willing to gain control of there auth data, without that extra headache of remember data that comes with it... + - For those, who don't mind researching and squirm through our documentation for hrs, just for once in a while, to customize & optimize their password management workflow... + +2. `Software Engineer` is our second target users: + + Which means, + + - the source code of the app, will much more likely to be clean, maintainable and extensible... + - developers can make the app, in way they need... we will also have documentation that one can follow & learn from, about how to extend passcodes app... + +3. `End Users` are the least target of application: + + Which means, + + - that the app will made in such way, in which we will try to abstract away the complex concepts in different extensible/decoupled systems... such that end users will more like feel that they are using a simple. but, secure password managing app... + - if you fall in this category of target users, then it more like that you will either not use the app to it full potential, or more like you will became password management nerd, as app is full optimized to promote customization and optimization of your password management workflow... + - Also, it more like a way to start using/integrating passcodes app into your daily password management workflow... but if wanna continue, then we recommend you, to try learn about your specific password management workflow and make yourself prompted from just normal end user to a more, better group (as in `Not So Developer, Not So Normal-End-User` group).. which will make you, the first target of app... which also mean that you will likely use app more effectively and will (at some point) end up optimizing your password management workflow, to make it more secure and customized to your specific needs... + +--- + +## Priority + +### `Customization & Extensibility is our top most priority, While simplicity is just not!!`: + +Which means app will be fully (or to it most) be extensible & customizable, without limited by any abstraction and simplification of app. We as developer will try to make the internals of app more abstract and decoupled and thus, customizable. meanwhile doing we might loss simplicity.. and the UI/UX might look more complex then need... + +Simplicity is not priority of the passcodes app. but abstracting concepts from users (as much as possible) surely is... + +## `Security is our second most priority, While performance is just not!!` + +Which clearly mean that app might have a ten different redundant, in software checks for data and user input. to ensure a robust operation.. This check might add performance overhead.. but as performance is not our priority, we might ignore this performance overhead, as we focus more on security, robustness and extensibility. + +Also, performance is not even a thing, we consider optimizing for, while making passcodes app. and it's done for better or for worse. as passcodes app is not use daily. and also we believe, that security concerns associated wih password management app is more important then any performance issue ever arise can, and sure in modern work we have high speed computer and three different redundant check won;t hurt. but an app crash or data corruption might, As the data app deals with is highly sensitive, consider end user might end up save all there account form different platform at one place.... And sure a user can wait for 2 or 3 minutes if app is not responding and doing some redundant checks just ensure data is valid... + +But that sure doesn't mean we will not focus on performance... if it became a serious issue we will try our best to solve the performance issues... but it just that, we might end up wait until something goes seriously go wrong with performance!! (e.g. app take time, to process a simple single store password action.. for straight 1 minute...) + +## Motivation + +We have pretty good and decent motivation that drive us forward, there are many previous project that back passcodes app... that were made piously by me(jeeldobariya38) and fellow contributor... + +### Kupass + +Github REPO: [Kupass](https://github.com/kudanilll/kupass). + +#### Overview + +It a simple much more intuitive password management solution.. develop by fellow contributor, daniel (@kudanill). It is one of recommended solution if you want to have easy to use app.. and don't need complexity and customization that passcodes offer you. as it simple ant intuitive.. it very much more secure as it all in your local storage... + +#### Why Quit? + +Daniel, the official owner of project, has stop provide further update as his priority change... there was no real design issue with project... it just that project was more made for educational purpose and prototyping, hobby kind of purpose. + +### Smart Manager + +Github REPO: [Smart Manager](https://github.com/JeelDobariya38/Smart-Manager) + +#### Overview + +It was my first project in world of password manager and also in world of software engineering... it mostly a project, where i have made a lots of design mistakes... and try to make the code scalable and extensible and try implementing various stuff, that just don't fit together.. it perfect example, of use everything someone say is a community standard, without ever questioning why am i using it or whether is it worth adding to project.... it like if someone said use dependency injection make code better... then let just use it in our project.... + +#### Why Quit? + +The project suffer from major design issue that, I realized very later, in project timeline. it happens to reach to the point where the code was literally just mess and it just don;t have core features... so i thing to dump the app, and idea as whole... never really thought that i might come back to same idea a year after and use it to build a app in android... + diff --git a/other-docs/terms-for-contributions.md b/other-docs/terms-for-contributions.md new file mode 100644 index 0000000..aed6ce7 --- /dev/null +++ b/other-docs/terms-for-contributions.md @@ -0,0 +1,28 @@ +# Terms For Contributions + +- **Date**: Sept 23, 2025. +- **Author**: `@JeelDobariya38` + +> [!IMPORTANT] +> By contributing to any of repositorys maintain under GitHub Organisation `PasscodesApp`, you automatically accept this terms for contributions.. + +1) All the contributors are here by inform that, I will not be liable to pay them by any means, if in future, I decide to make the project monetize in some or there way... + +2) Contribution (each commit) made to repository, should be treat as a individual contributor sign off there work and in no terms, you will be able to ask for any benifits for your contributions... (it recommend to use `git commit -s -m "..." which signoff your commit`, but even if you don't do that, I will always count you, as you have signed off..) + +3) Any of your contribution to the repository will be maintain indefinitely, under project license and might end up getting monetize by me... + +4) Also be sure that your contribution will be public records and your name might be there as part of credit or as collaborator on social media.. like on linkedin and on our telegram community... + +5) In, 1, 2, 3, 4.. term `contribution` refer to any and every kind of contribution, either in terms of code, in docs, in website or can be even as simple and as small as a suggestion or testing of a app. + + +## Casual Explanation + +I know, all of above writing stuff, look super professional and to a some level super rude too.. but, I just want to be very clear with contributor from early on that this might be a thing in future... so, that no one's intrested and work is waste and at end of day every one feel safe to contribute with clear idea of what they can expect... + +I have recently, think that I am get a great response for my project... (thank you for that 💜) atleast the response I get utill on telegram community is far high, then what I expected in earlier days... I initially wasn't expecting this much, I was expecting passcodes as my own hobby project... but I turn out to be super good.. So, I am deciding or planning towards monetize this project in future... so, I just wanna to be clear with contributors, about it... as earlier as possible.. + +Note that, By no means, what write above is a legal document. It just a claim or document write by me... and what I write above is, is something I think (utill my knowledge). is always being a silent, unsaid rule in open source. but, I just want to be clear. and I hope you all will accepted it and pretend like it a legal document and follow it... 😂 + +For any questions or doubt, you reach out to me directly on telegram community... (https://t.me/passcodescommunity) diff --git a/references/commands.md b/references/commands.md new file mode 100644 index 0000000..096c094 --- /dev/null +++ b/references/commands.md @@ -0,0 +1,49 @@ +# Important Commands + +- For Building A Clean ALL Variant + +```powershell +./gradlew clean assemble +``` + +- For Building A Clean Release Variant + +```powershell +./gradlew clean assembleRelease +``` + +- For Building A Staging Variant + +```powershell +./gradlew assembleStaging +``` + +- For Building A Debug Variant + +```powershell +./gradlew assembleDebug +``` + +- For Clearing Build Files + +```powershell +./gradlew clean +``` + +- For sync depeendency + +```powershell +./gradlew --refresh-dependencies +``` + +- For test app + +```powershell +./gradlew testDebugUnitTest +``` + +- For install app on USB connect device + +```powershell +./gradlew installDebug +``` diff --git a/user-docs/changelog.md b/user-docs/changelog.md new file mode 100644 index 0000000..e3c1f47 --- /dev/null +++ b/user-docs/changelog.md @@ -0,0 +1,121 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +Release Notes: [release-notes.md](release-notes.md), there you will find short and sweet release notes. + +> [!NOTE] +> This is more sort of a final file.. Update before every offical release of passcodes.. +> For raw changelog.md refer individual assocaited repository.. + +## Link + +- **Telegram:** [Community (@passcodescommunity)](https://t.me/passcodescommunity) +- **Website:** [https://passcodesapp.github.io/Passcodes-Website/)](https://passcodesapp.github.io/Passcodes-Website/) + + +## v1.1.1 - Alpha (Sept 11, 2025) + +
+ View Internal Details + + ``` + Pacakage Name = "com.jeeldobariya.passcodes" + Min Android = 8.0 (API level 26) + Max Android = 14 (API level 34) + Version Code = 2 + Version Name = "v1.1.1-Alpha" + Master Database Version = "v1" + ``` +
+ + +### Fixed + +- **Fixed Import Passwords**: fix the bug, that was not let user select csv files from file picker. due to incorrect mimetype in code.. Contributed by [@JeelDobariya38] + + +## v1.1.0 - Alpha (Sept 1, 2025) + +
+ View Internal Details + + ``` + Pacakage Name = "com.jeeldobariya.passcodes" + Min Android = 8.0 (API level 26) + Max Android = 14 (API level 34) + Version Code = 2 + Version Name = "v1.1.0-Alpha" + Master Database Version = "v1" + ``` +
+ + +### Added + +- **Improve UI/UX**: improve view password screen, also adjust the button colors.. Contributed by [@JeelDobariya38] +- **Add Feature Flagging**: give user a control on whether they wanna latest experience or stable experience. add a way for launching preview features without worry about their stability. Contributed by [@JeelDobariya38] +- **Update Checker**: made a basic update checker that help users stay out to date with latest release & also notify user about already reported security vulnerability. Contributed by [@JeelDobariya38] +- **Copy Button (preview feature)**: add copy button for copy passwords for easy of use. but as it is potential threat to security, made it a preview feature. Contributed by [@JeelDobariya38] +- **G-Passwords Import/Export (preview feature)**: add a import/export feature. which also compatible with google passwords. I have test it with my google password setup. but, I am not sure wether this will run in every edge case or not. So, it a preview feature. Contributed by [@JeelDobariya38] + +### Changed + +- **Migrated Project**: Migrate project from `JeelDobariya38 (personal)` to `PasscodesApp (my organization)` account. To reflect my long term vision. Contributed by [@JeelDobariya38]. + + +## v1.0.0 - Stable (Aug 16, 2025) + +
+ View Internal Details + + ``` + Pacakage Name = "com.jeeldobariya.passcodes" + Min Android = 8.0 (API level 26) + Max Android = 14 (API level 34) + Version Code = 1 + Version Name = "v1.0.0-Stable" + Master Database Version = "v1" + ``` +
+ +### Added + +- **Localized App**: add language support for English, Chinese, Hindi, Indonesian, Japanese, Korean, German, Spanish, Vietnamese. Contributed by [@JeelDobariya38]. +- **Improved UI/UX**: add confirmation dialog's, support for light & dark theme with additional minor changes. Contributed by [@JeelDobariya38 & @kudanilll]. +- **New Icon**: add new icons to app. Contributed by [@JeelDobariya38]. + +### Changed + +- **Migrated Package Name**: Migrate package name from `com.passwordmanager` to `com.jeeldobariya.passcodes`. Contributed by [@JeelDobariya38]. +- **Improve Safety By Kotlin Implementation**: Move from `Java` to `Kotlin` Language. Contributed by [@JeelDobariya38]. +- **Improve Data Storing Process**: Move from `SqliteDatabase` to `Room` Library for better data-storage. Contributed by [@JeelDobariya38]. + + +## v0.1.0 - Alpha (Aug 26, 2024) + +
+ View Internal Details + + ``` + Pacakage Name = "com.passwordmanager" + Min Android = 8.0 (API level 26) + Max Android = 13 (API level 33) + Version Code = 1 + Version Name = "0.1.0-Alpha" + Master Database Version = "v1" + ``` +
+ +### Added + +- **App Icon Creation**: Designed and implemented the initial app icon, providing the application with a recognizable visual identity. Contributed by [@HamadaNative]. +- **Basic App Structure**: Established the foundational architecture of the app, including the main entry point and initial setup. Contributed by [@JeelDobariya38]. +- **Main Page Development**: Developed the main page of the app, including basic UI components and initial layout. Contributed by [@HamadaNative]. + +### Notes + +- This is the initial alpha release, focused on setting up the basic structure and key visual elements of the app. diff --git a/user-docs/installing.md b/user-docs/installing.md new file mode 100644 index 0000000..e6db51a --- /dev/null +++ b/user-docs/installing.md @@ -0,0 +1,136 @@ +# Detail Guide On Installation + +This file give you a deep guide on installation & updation process. we hope that you have already read the step written in readme but, aren't satisfied with that and need more info and guide on installation and updation. + +👏👏 We appreciate your efforts. As developer we try to abstract away complicated process, But sometimes this abstraction make thing simple that it is.. Which lead to false image of the process. To avoid that, we have created this guide that help you navigate installation and updation process.. + +# Table of Contents + +- [Installation Process](#Installation-process) +- [Updation Process](#updation-process) +- [Guide To Find A Best Release](#guide-to-find-a-best-release) +- [Explicitly Yanked Release (Pure Trash)](#explicitly-yanked-release-pure-trash) + +## Installation Process + +For initial installation of app, you follow step given below it work in most scenario. + +1. Checking whether the app can run on your device or not. + - go to your setting app and check whether you are on android 8+ or not? + - if no, then sorry, app is not compatible with your device. + - and if yes, then mostly you are good to go but, officially we only support device between android 8 to 14. For more high android version app can be run, But we don;t officially support it. + +2. After completing first step, Pick a version of app to install. + - Go to our [github repository release page](https://github.com/PasscodesApp/Passcodes/releases). There you will find a list of release available. + - pick up any one of the release you like. (we recommend you to pick a good release. [how can you find a good release](#guide-to-find-a-best-release)?) + - after pick up a release, you can read the change log to know what has changed. (optional step) + +3. Downloading apk files + - after pick up a release, you can scroll to the assets and download the apk that better fits your phone CPU architecture. + + - if you don;t know your phone CPU architecture. just download the apk file that has universal in its name. + +4. Installing apk files. + - install the apk file. the apk file will be mostly like downloaded in your browser (probably like Chrome, Firefox or Edge). + + - open the app. + +if any problem occur while performing the above 4 step. report your problem using [github issues](https://github.com/PasscodesApp/Passcodes/issues/new) after checking other support docs available in our [docs github repository](https://github.com/PasscodesApp/Passcodes-Docs) . + +## Updation Process + +As you are reading this part, we hope that you have passcodes app installed on your phone and now, you want to update it. + +you can follow step given below. they work for most scenario. + +> [!IMPORTANT] +> updating from one version to another might result into data loss. though, it occur very rarely. but, it a good practice to take a backup of data. +> this try of data loss are likely to occur, when you are update from one major version to another major version meaning from `1.x.x` to `2.x.x`. + +1. Checking Whether The Update Exist Or Not + - compare your current app version with latest app update. (you can find your current installed passcodes app version under app info in your phone settings) + - check whether a update exist or not? + - if no, then you can;t update but, can surely en-quire about the next update using github issues. + +> if you know a bit of android then just clone the repository and build from main. it will work fine, because we use main branch as production. take reference from existing building docs in github. + +> Ignore this if it doesn't make sense to you.. + + - if yes, then check how big the update is and how it affect your experience as user? + - to find the update impact you can check what the difference between your version and new version you are updating to. + +> i.e, if you update from 1.x.x to 2.x.x the the change will be big. if you update from 1.x.0 to 1.x.2 then change might be not visible even. + +2. Downloaded the updated apk files. + - it is same as you did earlier while installing the app. + + - goto release page and download the asset from select release. refer installation guide above if needed. + +3. Update the app. + - if, you updating to a new major release, meaning from 1.x.x to 2.x.x then, don;t forget to backup your data. you will thank your self later, if something goes wrong... + - now install the new apk file it will ask you to upgrade instead of install. + - open the app and enjoy your updated expirence. + +4. Restore the backup if need. + - if, needed restore the files/data back. or even revert to prevoius release if, problem occurs. + + - we admire the contribution even in form of your experience with app. + +> meaning, reporting your data erase on update problem. will be appreciate. +> it help us make better experience & fix bug that might be missed by us. + +--- + +## Guide To Find A Best Release + +To find a best release you should have knowledge of passcodes versioning system and type of releases we release/publish. + +### Release Types + +On our github release page you will find majorly `5 (3+2)` type of release. Where each type of release label tell you something about release. +Each release on github may have a label but, some even lack them completely. These label tends to tell more about release, so they are IMPORTANT to consider. + +There are majorly two ways, In which we classify release. Mean a release will have two labels. +So to speak: + +- **Build Label**: a label which won't change once after release. (alpha/beta/stable) +- **Github Release Label**: a label that can change. (pre-release/latest) + +#### Three type that are there in app itself, you find them in release title on github: + +(this tags/labels can;t change after initial release of that version is done). + +- Alpha: special design for development purpose, not intended to use by end users, they comes with likely lots of bugs and security venerability. +- Beta: release that can be used by mass audience, and likely can contain minor bugs. +- Stable: are likely to be more stable then others release type, contain nearly zero bugs as they are very well tested. this release also will have extra developer support. + +#### Two type are specific to github release. they are label on github release itself: + +(this tags can label can change with time as they are dynamic and are not tied to app itself. meaning they are no hard coded anywhere) + +- Pre Release: this release are not so good to install or to stick with. they are generally like `marked as deperacted` or more like `yanked release` +- Latest: this release label make a release as the best up to date release to install. but latest doesn't mean stable. it means latest feature. + +> [!NOTE] +> this label or flag changes with time. meaning, a app version after it release, can be marked as pre-release as there are lots of bug found in that release later or a release can later be marked as latest release as it all good after test in production enviroment. + +So, here is a list in order where starting type are best and ending types are worse. + +``` +STABLE (the best) > LATEST > BETA > ALPHA > PRE-RELEASE > RELEASE-WITH-NO-FLAGS (the worst) > Explictly Yanked Release (Pure Trash) +``` + +It more like that a release can have two flag at a same time. for example, a stable and pre-release. In such case, consider the github base label in this case `pre-release`. as they are more dynamic and provide the latest information from us (developer part). + +> this clear means a pre-release even if they are stable / alpha / beta / gamma (unlikely.... 😂) +> it just doesn't matter it will be considered `the worst`... + +--- + +## Explicitly Yanked Release (Pure Trash) + +This release will have Yanked Release written in the release title and description on github release page. + +Such release are just there for documentation purpose.. + +JUST DON'T USE THEM!!!! diff --git a/user-docs/release-notes.md b/user-docs/release-notes.md new file mode 100644 index 0000000..42d871a --- /dev/null +++ b/user-docs/release-notes.md @@ -0,0 +1,92 @@ +# Release Notes + +Here, You will find short ad sweet and casual `tldrs` for release notes or change-log. +For more details and more professional tone, see [user-docs/changelog.md](user-docs/changelog.md). + + +## Link + +- **Telegram:** [Community (@passcodescommunity)](https://t.me/passcodescommunity) +- **Website:** [https://passcodesapp.github.io/Passcodes-Website/)](https://passcodesapp.github.io/Passcodes-Website/) + + +## v1.1.1-Alpha (Sept 11, 2025) + +``` +Package Name = "com.jeeldobariya.passcodes" +Min Android = 8.0 (API level 26) +Max Android = 14 (API level 34) +Version Code = 2 +Version Name = "v1.1.1-Alpha" +Master Database Version = "v1" +``` + +`TL;DR`: Sorry for delay, but we have fix import files feature... + +We are very sorry for the delay.. we have officially fix the import password csv file selection bug... + +In big project, such small mistakes/things happens.. so, ignore it please... + + +## v1.1.0-Alpha (Sept 1, 2025) + +``` +Package Name = "com.jeeldobariya.passcodes" +Min Android = 8.0 (API level 26) +Max Android = 14 (API level 34) +Version Code = 2 +Version Name = "v1.1.0-Alpha" +Master Database Version = "v1" +``` + + +`TL;DR`: Design Improvement.. | Will work with google passwords.... | We are officially an organization on GitHub from `Aug 31, 2025`.... + +This our first **officially release after migrating to the github organization...** this release has feature like import & export passwords from google passwords app... this is also a alpha release and both features (copy password & import export password) are disable by default due to security threats... they can be turn on if you wish... + +Also as the passcodes have change from just my personal hobby project to official organization.. this release is step for us to move to open source and open to contribute... and more importantly it reflect, my long term vision with passcodes as a project... what it means? upcoming things will be more fascinating to view and to be part of... and also the app will have more long term support... (if you ignore, the fact that I am not verified developer as of "1/9/25 by google"... but will do it in near time...) + +Organization is name **PasscodesApp and not Passcodes. Because, it not available on github.......** + +Stick to watch and observe passcodes upcoming progress... [Telegram](https://t.me/passcodescommunity) + + +## v1.0.0-Stable (Aug 16, 2025) + +``` +Package Name = "com.jeeldobariya.passcodes" +Min Android = 8.0 (API level 26) +Max Android = 14 (API level 34) +Version Code = 1 +Version Name = "v1.0.0-Stable" +Master Database Version = "v1" +``` + + +`TL;DR`: Our first stable release.. | Not much has change in terms of look and feature.. | Name of project has changed to "Passcodes".. + +This is our first stable release, even though it look and behave same as prototype release. +it now more stable and more reliable as the data storage part is now tested and optimized and uses more modern approach (room library).. +things have change internally also... like app was first build using java.. but, now it is build using Kotlin. +now, you can also switch theme and languages in app.. +also improve UI/UX by providing help text.. especially as you all have question like "what is domain?" "what can i write in domain?" and so on..... + + +## v0.1.0-Alpha (Aug 26, 2024) + +``` +Package Name = "com.passwordmanager" +Min Android = 8.0 (API level 26) +Max Android = 13 (API level 33) +Version Code = 1 +Version Name = "0.1.0-Alpha" +Master Database Version = "v1" +``` + + +`TL;DR`: Our first initial release.. | Prototype release.. + +It a prototype release which mean it can have bugs... +It has all core features, like create, read, update and delete passwords... +It has basic UI that allow you do do things, really intuitively and more structure... +But structure and intuitively doesn't necessary means modern UI... UI is now so cool but has structure... diff --git a/user-docs/security-guidelines.md b/user-docs/security-guidelines.md new file mode 100644 index 0000000..1c3630b --- /dev/null +++ b/user-docs/security-guidelines.md @@ -0,0 +1,25 @@ +# Security Guide + +Here, In this file, You can find the information about security concern that arise with saving your password with passcodes app. + +> [!warning] +> Firstly, The passcodes is open source project and is currently under active development. So, one is soley responsible for share there information with passcodes application. + +We as developers, recommended you to wait, for its stable release. before full trusting passcodes with yous your passwords data. + +## Consideration + +While, save your password with passcodes application. you should consider or should have knowledge of following things. + +- Project is license under MIT License. which means that application is given `as it is, without any warranty or guarantee` and is openly/freely available to redistribution or modify. (but you need to have a copy of original license in it) +- With passcodes, your password are as safe as you write it down on pieces of paper or in a txt file digitally. which means that, `your information is not specially protected.` + +## Recommendation + +Here, are the thing we recommend. + +- lock passcodes app, using your phone's settings app. it will make it hard for attackers to see your passwords. + +- if you lock the app, then use a different password, then the one you have on your lock screen. it make it even more safe. + +- also, if you don't use the app often, itrecommended, to hide the app using your phone settings. (it is bit inconvenient but at the end of day it pays off as safety)