Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/abhijithvijayan/onepass

OnePass Password Manager in the making.
https://github.com/abhijithvijayan/onepass

create-react-app expressjs neo4j nextjs nodejs password-manager react react-native react-router redux srp

Last synced: 3 months ago
JSON representation

OnePass Password Manager in the making.

Awesome Lists containing this project

README

        

OnePass







> An Open-Source Password Manager (being) build on latest web/native technologies & higher security protocols.

The WebApp is still in the very development phase.

You could test out the live progress at

https://onepass.abhijithvijayan.in

Use sample credentials from this paste

https://pastebin.com/raw/4bB7DsxX

## Prerequisites

- node >= 8 <11
- neo4j

## Table of contents

- [Quick Start](#quick-start)
- [NPM Commands](#yarn-commands)
- [Adding New Dependencies](#adding-new-dependencies)
- [How Packages Communicate](#how-packages-communicate)

## Quick Start

1. Run `yarn bootstrap` in order to install all dependencies.
2. Run whichever package you wish to, using specific commands listed below.
3. Enjoy ✨

#### Launch WebApp (Next.js - Express Server)

- Run `yarn run dev:web` to launch webapp at port `4000`

#### Extension

- Run `yarn run dev:extension` to launch create-react-app at `port 3000` and express backend server at `port 4000`

## YARN Commands

### bootstrap

This runs `yarn install` on each package and symlinks local packages.

## Adding New Dependencies

Adding packages to a `yarn workspaces` project is slightly different than adding to a standard node package. Common `devDependencies` can be added to the top level `package.json` file using `-W --dev` flag.

### Adding Common Dependencies

This is the most likely scenario you'll face.

In the root directory ( `onepass/` ) run the following commands:

```sh
yarn add some-cool-package -W
yarn bootstrap
```

This makes `some-cool-package` available to all packages.

### Adding Individual Dependencies

```
yarn workspace @onepass/ add some-cool-package
```

### Creating A Dependency To Another Local Package

To create a dependency to a `foo` package from a `bar` package:

In the `bar` package, add the following entry in the `packages/bar/package.json` file under the dependencies key:

```js
{
//...other stuff...
dependencies:{
//...other dependencies...
"@onepass/foo": "0.0.1", // this version must be exact otherwise it fetches from npm
}
}
```

**Important**

The version number must be exact as in the package.json of `foo` to link local packages, otherwise it will (try to) fetch the package from NPM.


### Directory Structure

- @onepass/core - Encryption/Decryption related functions
- @onepass/web - Next.js App
- @onepass/extension - Create-React-App Browser-extension
- @onepass/server - Express Server


### Vault Architecture

Follows similar architecture like of 1password.com

> Read more in-detail [here](https://1password.com/files/1Password%20for%20Teams%20White%20Paper.pdf)

#### In simple words:

> You have a Master Password & Secret Key with which ONLY you can unlock the vault.

> These 2 items are NEVER send to the server in any manner.

> All encryption / decryption stuff is done on the client device itself.


## Stack

WebApp

- Node (Web server)
- Express (Web server framework)
- SRP Protocol (Authentication)
- Passport (JWT Authentication)
- React (UI library)
- Next (Universal/server-side rendered React)
- Redux (State management | Ducks Style)
- styled-components (CSS styling solution library)
- Ant-Design (React UI Framework)
- SASS (CSS Preprocessor)
- Neo4j (Graph database)

Browser extension


... not fixed yet


Android / iOS

...

## Author

👤 **abhijithvijayan**


## Contributing

Pull requests are welcome as there are plenty of improvements & features to be worked on.

Open [issues](https://github.com/onepassapp/onepass/issues) for feedback, requesting features, reporting bugs or discussing ideas.

## Show your support

Give a ⭐️ if this you find this project helpful!

Also, help in the development to slay the bugs and making this much awesome and free.