# Nom - Name Registry DNA Payment Portal & Reusable UI Tech Stack
###### tags: `Technical Specification`
## Centralized Payment Portal
### Payment Options
- Bank deposit
- Credit/Debit card
- Cryptocurrency (HOT, BTC, ETH etc)
### modules/libraries
**Front-End**
WebApp Framework: Vue + Nuxt
Webpage development
**API**
**Payment API: Stripe**
Payment management
Comes with a per card charge cost
Allows crypto payments
**Deployment**
Cloudflare or AWS EC2
### Private File System Structure for temporary Name Store
- We will be using a temporary File System hosted in Github for recording any purchase of Namespace, Local Names, and Global Names, until we are ready with storing data in Holochain
#### File System Structure
```
~/nom_registry
./witnesses
./witness_profile.json
./global_names
./gusername1.json
./gusername2.json
./namespaces
./app_namespace_index // uuid for namespace
./namespace_properties.json // namespace property
./namespace_marketing_info.json
./namespace_logo.png
./username // name type 1
./username1.json // local name 1
./username2.json // local name 2
./username3.json // local name 3
./other_name_type // name type 2
./name1.json
```
#### JSON Structures
```json
// namespace.json
{
"originDna"?: String, // we could later ask for this during migration
"globalNameRegOptIn": Boolean,
"ttl": Number, // u8
// "bindingPublicKey"?: String,
"freeNameAllotment": Number, // u32
}
// namespace_properties.json
{
"namespace": String,
"displayName": String,
"dnaVersions": Array<String>,
"orgDetail": Organization,
"nameTypes": Array<Array<Number> | String>, // Vec<u8> | String (uuid for nametypes?)
"agentNameType": Number, // u8
"maintainers": Array<String>, // What should be in here for now?
"ownershipProof"?: String // Option<Signature>
}
// Organization
{
"name": String,
"email": String,
"country": String,
"province" String,
"city": String,
"contactNo": String
}
// namespace_marketing_info.json
{
"logo": String, // base64 of logo?
"appName": String,
"appStatus": "Alpha" | "Beta" | "Released"
}
// nametype.json
{
"path": String, // immutable
"namespace": String, // temporary uuid of the namespace?
"validNameStructureRegex": String
"displayName": String,
"ttl": Number, // u8
"purchasePrice": Number, // u32
// "prevNameTypeEh"?: String,
}
// witness_profile.json
{}
```