Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
de7de36
fix(docs): url
JeelDobariya38 Sep 16, 2025
d1a7fc2
chore: add gitignore...
JeelDobariya38 Sep 16, 2025
4c48d5f
docs(github): add rule set .json for easy access..
JeelDobariya38 Sep 16, 2025
19ec6e1
chore: structure
JeelDobariya38 Sep 16, 2025
14116be
docs: project-overview.md
JeelDobariya38 Sep 16, 2025
82fcfff
docs: add database schema docs
JeelDobariya38 Sep 16, 2025
693d8c4
chore: migrated LICENSE.txt from organisation repo
JeelDobariya38 Sep 17, 2025
e9c310c
chore: migrate SECURITY.md
JeelDobariya38 Sep 17, 2025
3d55491
docs: document db version 0
JeelDobariya38 Sep 17, 2025
bca4742
docs: add metadata to docs
JeelDobariya38 Sep 17, 2025
d279286
organize & migrate some new doc files
JeelDobariya38 Sep 17, 2025
aa91741
refactor: rename project-overview.md to other-docs/project-overview.md
JeelDobariya38 Sep 17, 2025
c6feabc
refactor: organize
JeelDobariya38 Sep 17, 2025
0090257
docs: add a release workflow for app
JeelDobariya38 Sep 19, 2025
42e0d6d
docs: migrate support docs..
JeelDobariya38 Sep 19, 2025
101919b
docs: fix typos in toc
JeelDobariya38 Sep 19, 2025
ecb50d3
docs: add a dev docs for building stuff
JeelDobariya38 Sep 19, 2025
85073ae
docs: improve docs structure
JeelDobariya38 Sep 20, 2025
ece9eb7
fix: broken link to changelog.md
JeelDobariya38 Sep 20, 2025
4def2a2
docs: improve heading
JeelDobariya38 Sep 20, 2025
f67be25
docs: start writing open-contributing-timeline.md
JeelDobariya38 Sep 20, 2025
3462b42
docs: made a ouline of timeline it [rough though]
JeelDobariya38 Sep 20, 2025
9b67281
docs: add contributing.md
JeelDobariya38 Sep 21, 2025
e349445
docs: add other github essentials template files
JeelDobariya38 Sep 21, 2025
16d2211
refactor: structure & organize..
JeelDobariya38 Sep 21, 2025
5139b76
docs: add extra infomation..
JeelDobariya38 Sep 21, 2025
8a07f72
refactor: fix typo
JeelDobariya38 Sep 21, 2025
60568d3
docs: add c-commit hook
JeelDobariya38 Sep 21, 2025
85bcd78
docs: update open-contributing-timeline.md
JeelDobariya38 Sep 21, 2025
844551f
improve structure
JeelDobariya38 Sep 23, 2025
6c289f4
docs: terms-for-contributions.md
JeelDobariya38 Sep 23, 2025
e3a4361
docs: Update terms-for-contributions.md
JeelDobariya38 Sep 23, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
.obsidian/

131 changes: 131 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -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._

21 changes: 21 additions & 0 deletions LICENSE.txt
Original file line number Diff line number Diff line change
@@ -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.
22 changes: 20 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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..

8 changes: 8 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -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`
10 changes: 10 additions & 0 deletions database-design-docs/README.md
Original file line number Diff line number Diff line change
@@ -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)
7 changes: 7 additions & 0 deletions database-design-docs/master.db/README.md
Original file line number Diff line number Diff line change
@@ -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)
37 changes: 37 additions & 0 deletions database-design-docs/master.db/v0.md
Original file line number Diff line number Diff line change
@@ -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
);
```

37 changes: 37 additions & 0 deletions database-design-docs/master.db/v1.md
Original file line number Diff line number Diff line change
@@ -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
);
```

89 changes: 89 additions & 0 deletions dev-docs/building.md
Original file line number Diff line number Diff line change
@@ -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
```
Loading