# 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 {} ```