Difference between revisions of "Talk:PKC documentation"

From PKC
Jump to navigation Jump to search
 
(7 intermediate revisions by 2 users not shown)
Line 3: Line 3:
==Draft Plan (proof of concept==
==Draft Plan (proof of concept==


''to prove a multiple environment engine, secured by DAO essence, conducting a new developed society through “science of Governance”
''To prove a multiple environment engine, secured by DAO essence, conducting a new developed society through “Science of Governance”


' #1API integrations  
 
: restAPI
 
''' #1API integrations  
: restAPI [[restAPI example | example]]
:: integrate several open source or with open APIs to PKC
:: integrate several open source or with open APIs to PKC
::: TOP - metrics on performance and CpL
::: TOP - metrics on performance and CpL
:::        Fossil - Use Fossil's SQlite relational engine, and Version control semantics to manage data assets and drive the commit workflow of Git
::: GitHub - Ability to deploy through PKC,  
::: GitHub - Ability to deploy through PKC,  
::: GIT - create CICD environments to Github, from Editors
::: GIT - create CICD environments to Github, from Editors
Line 19: Line 22:
: Apollo Spreadsheets (Pedro’s team 1 developer?)
: Apollo Spreadsheets (Pedro’s team 1 developer?)


DID
'''DID
: #4 E-ID - Auth, smart contract, Blockchain
: #4 E-ID - Auth, smart contract, Blockchain
:: Keycloak (done)
:: Keycloak (done)
Line 27: Line 30:
Only visual simulated packages
Only visual simulated packages


'#13 Content
'''#13 Content
: Build a new frontEnd design (UI/UX) “new skin”
: Build a new frontEnd design (UI/UX) “new skin” (Consider other Web3 Project Management Website Skins, for example:[https://www.daomasters.xyz/tools/wonderverse Wonderverse] and [https://www.youtube.com/watch?v=GWxMTvRGIpc Jira])
: Create interesting content to introduce new members to the PKC multiple programs
: Create interesting content to introduce new members to the PKC multiple programs
: Create  presentation of everything we want to build with PKC
: Create  presentation of everything we want to build with PKC
Line 36: Line 39:


Internal - Essential for us, not to the proof of concept  
''Internal  
 
''Essential for us, not to the proof of concept  
' #8 Security
Finish the CICD - project was very open and Haviz had no control
#9 Testings
#10 Deployments - Everyweek after CICD is set up in 2 stages
From Dev to QA (Approved my Pedro and Haviz)
From QA to Production (approved after Pedro stress testing and final approved by Ben)
#11 Documentation - Create a proper documentation
Create flows of all component relations
Create design portfolio of all components
Create a DDT protocol
Create technology documentation and implementation (including Open API doc)
#12 Core Development - stable the app
#14 Operations - Correct daily issues
 
 
 
 
 
 
 
==RestAPI testing==
 
## User
+ Base Url: https://app.trackonperformance.com/api/user/
+ Swagger Url: https://app.trackonperformance.com/swagger/#/User
 
### Description
User's are the primary resource that holds every other resource and they have the following properties:
 
+ _id | the unique identifier for this entity
+ name | string | max_length 50
+ email | string | max_length 255
+ password | string | min_length 3 | max_length 50
+ contact | string | max_length 30
+ avatarUrl | string
+ location | string | default: England
+ language | string | default: auto | Auto by default which allows frontend application to choose from the URL
+ mainSkills | string | default:
+ personalInterests | string | default:
+ lastLogin | Date | ($date-time)
+ lastWorking | Date | ($date-time)
+ lastAccount | string
+ signature | string | default:
+ birthdate | string or null
+ clockPaused | boolean | default: false
+ coffeePauses |
+ + pauseAt | Date | ($date-time)
+ + resumedAt | Date | ($date-time)
+ clockAbsences |
+ + leftAt | Date | ($date-time)
+ + returnedAt | Date | ($date-time)
+ clockBurnedHours |
+ + credits | number |
+ + createdAt | Date | ($date-time)
+ howToBegin | UserHowToBegin
+ + firstTimeCharter | boolean | default:false
+ + firstTimeProject | boolean | default:false
+ + firstTimeOBS | boolean | default:false
+ isTopAdmin | boolean | default:false
+ timezone | string | default: Europe/Lisbon
+ hubspotTokens |
+ + accessToken | string
+ + refreshToken | string
 
 
user How to begin has a special condition, for the new coming users, on a process of entering:
 
+ firstTimeCharter | boolean | default: false
+ firstTimeProject | boolean | default: false
+ firstTimeOBS | boolean | default: false
 
### Returns user Notifications
 
Returns user Notifications
 
Request example:
```typescript
    import axios from 'axios'
 
    ( async function () {
        const accountId = 1234
        const response = await axios({
            url: `https://app.trackonperformance.com/api/user/notifications`,
            method: 'GET',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': 'Bearer <your token>'
            }
           
        })
 
        if (response.status === 200) {
            console.log("user was notified")
        }
    } )()
 
```
 
 
 
### Returns user archive
 
Returns user archive
 
Request example:
```typescript
    import axios from 'axios'
 
    ( async function () {
        const accountId = 1234
        const response = await axios({
            url: `https://app.trackonperformance.com/api/user/archive`,
            method: 'GET',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': 'Bearer <your token>'
            }
           
        })
 
        if (response.status === 200) {
            console.log("user got the archive")
        }
    } )()
 
```
 
 
 
### Returns user projects
 
Returns the user portfolio and projects
 
Request example:
```typescript
    import axios from 'axios'
 
    ( async function () {
        const accountId = 1234
        const response = await axios({
            url: `https://app.trackonperformance.com/api/user/projects`,
            method: 'GET',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': 'Bearer <your token>'
            }
           
        })
 
        if (response.status === 200) {
            console.log("user got the portfolio or projects")
                    const { data } = response
                    console.log({
                        "current": {
                            "_id": data._id,
                            "name": data.name,
                        "portfolios": {
                            "_id": data._id,
                            "name": data.name,
                            "projects": {
                                "_id": data._id,
                                "name": data.name,
                      }
                            "programs": {
                                "_id": data._id,
                                "name": data.name,
                                "projects":{
                                    "_id": data._id,
                                    "name": data.name,
                            }
                      }
                }             
            })           
        }
    } )()
 
```
 
 
 
 
### Returns user charters
 
Returns the list of charters the user can see (members or team leaders dont have access)
 
 
Request example:
```typescript
    import axios from 'axios'
 
    ( async function () {
        const accountId = 1234
        const response = await axios({
            url: `https://app.trackonperformance.com/api/user/charters`,
            method: 'GET',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': 'Bearer <your token>'
            }
           
        })
 
        if (response.status === 200) {
            console.log("user got the charters")
                    const { data } = response
                    console.log({
                        "_id": data._id,
                        "name": data.name,
                }           
        }
    } )()
 
```
 
 
 
### Returns user orgs
 
Returns the organizations the authenticated user has access to
 
 
 
Request example:
```typescript
    import axios from 'axios'
 
    ( async function () {
        const accountId = 1234
        const response = await axios({
            url: `https://app.trackonperformance.com/api/user/orgs`,
            method: 'GET',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': 'Bearer <your token>'
            }
           
        })
 
        if (response.status === 200) {
            console.log("user got the orgs")
                    const { data } = response
                    console.log({
                        "_id": data._id,
                        "name": data.name,
                        "description": data.description,
                        "creator": data.creator,
                        "jobDescription": data.jobDescription,
                        "admins": data.admins,
                }           
        }
    } )()
 
```
 
 
 
### Returns user logins
 
Returns the login history
 
 
Request example:
```typescript
    import axios from 'axios'
 
    ( async function () {
        const accountId = 1234
        const response = await axios({
            url: `https://app.trackonperformance.com/api/user/logins`,
            method: 'GET',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': 'Bearer <your token>'
            }
           
        })
 
        if (response.status === 200) {
            console.log("user got the logins")
                    const { data } = response
                    console.log({
                        "_id": data._id,
                        "loggedAt": data.loggedAt,
                        "userId": data.userId,
                        "platform": data.platform,
                        "browser": data.browser,
                        "location": data.location,
                        "ip": data.ip,
                }           
        }
    } )()
 
```
 
 
 
### Returns user authenticated
 
Returns the authenticated user information
 
 
 
Request example:
```typescript
    import axios from 'axios'
 
    ( async function () {
        const accountId = 1234
        const response = await axios({
            url: `https://app.trackonperformance.com/api/user`,
            method: 'GET',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': 'Bearer <your token>'
            }
           
        })
 
        if (response.status === 200) {
            console.log("user got the auth")
                    const { data } = response
                    console.log({
                        "_id": data._id,
                        "role": data.role,
                        "payroll": data.payroll,
                        "workType": data.workType,
                        "clockPaused": data.clockPaused,
                        "jobDescription": data.jobDescription,
                        "user":{
                            "_id": data._id,
                            "name": data.name,
                            "email": data.email,
                            "contact": data.contact,
                            "avatarUrl": data.avatarUrl,
                            "location": data.location,
                            "language": data.language,
                            "mainSkills": data.mainSkills,
                            "personalInterests": data.personalInterests,
                            "signature": data.signature,
                            "birthdate": data.birthdate,
                            "howToBegin": {
                                "firstTimeCharter": data.firstTimeCharter,
                                "firstTimeProject": data.firstTimeProject,
                                "firstTimeOBS": data.firstTimeOBS,
                            }
                            "isTopAdmin": data.isTopAdmin,
                        }
                        "account": {
                                "_id": data._id,
                                "name": data.name,
                                "creator": data.creator,
                                "creatorMetadata": {
                                        "phone": data.phone,
                                        "licenseCost": data.licenseCost,
                                        "licenses": data.licenses,
                                }
                                "metadata": data.metadata,
                                "description": data.description,
                                "status": data.status,
                                "payrollFrequency": data.payrollFrequency,
                                "admins": data.admins,
                                "schedule": {
                                        "dailyStartTime": data.dailyStartTime,
                                        "dailyEndTime": data.dailyEndTime,
                                        "businessDays": {
                                                "monday": data.monday,
                                                "tuesday": data.tuesday,
                                                "wednesday": data.wednesday,
                                                "thursday": data.thursday,
                                                "friday": data.friday,
                                                "saturday": data.saturday,
                                                "sunday": data.sunday,
                                        }
                                        "breaks": data.breaks,
                                }
                                "autoPlayEnabled": data.autoPlayEnabled,
                                "realTimeEditableBy": data.realTimeEditableBy,
                                "defaultProjectPreferences": data.defaultProjectPreferences,
                                "createdAt": data.createdAt,
                          }
                          "permissions": data.permissions,
                }           
        }
    } )()
 
```
 
 
 
 
 
 
### Update user
Update User information
 
:
 
```typescript
    import axios from 'axios'
    import moment from 'moment'
 
    ( async function () {
        const response = await axios({
            url: 'https://app.trackonperformance.com/api/user',
            method: 'PATCH',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': 'Bearer <your token>'
            },
            data: {
                userId: 1234, //your user id
                property: 'birthdate',
                value: moment().format('YYYY-MM-DD')
            }
        })
 
        if (response.status === 200) {
            const { data } = response
            console.log("Returned the new updated data")
            console.log({
                "id": data.id,
                "name": data.name,
                "email": data.email,
                "password": data.password,
                "contact": data.contact,
                "avatarUrl": data.contact,
                "location": data.registerDate,
                "language": data.birthdate,
                "mainSkills": data.avatar,
                "location": data.location,
                "language": data.language,
                "mainSkills": data.mainSkills
                "personalInterests": data.personalInterests
                "lastLogin": data.lastLogin,
                "lastWorking": data.lastWorking,
                "lastAccount": data.lastAccount,
                "signature": data.signature,
                "birthdate": data.birthdate,
                "clockPaused": data.clockPaused,
                "coffeePauses": data.coffeePauses,
                "clockAbsences": data.clockAbsences,
                "clockBurnedHours": data.clockBurnedHours,
                "howToBegin": {
                    "firstTimeCharter": data.firstTimeCharter,
                    "firstTimeProject": data.firstTimeProject,
                    "firstTimeOBS": data.firstTimeOBS,
                }
            })
        }
    } )()
 
```
 
 
 
### Change user avatar
 
Change the authenticated user avatar image
 
 
 
 
Request example:
```typescript
    import axios from 'axios'
 
    ( async function () {
        const accountId = 1234
        const response = await axios({
            url: `https://app.trackonperformance.com/api/user/avatar`,
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': 'Bearer <your token>'
            }
           
        })
 
        if (response.status === 200) {
            console.log("user got the auth")
                    const { data } = response
                    console.log({
                        "url": data.url,
                }           
        }
    } )()
 
```
 
 
 
### Clear user avatar
 
Clears the current user avatar image
 
 
 
 
Request example:
```typescript
    import axios from 'axios'
 
    ( async function () {
        const accountId = 1234
        const response = await axios({
            url: `https://app.trackonperformance.com/api/user/avatarClear`,
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': 'Bearer <your token>'
            }
           
        })
 
        if (response.status === 200) {
            console.log("user got the auth")
                    const { data } = response
                    console.log({
                        "id": data.id,
                        "orgMemberId": data.orgMemberId,
                }           
        }
    } )()
 
```
 
 
 
 
 
### Change Auth Password
 
Changes the authenticated user password
 
 
 
 
 
Request example:
```typescript
    import axios from 'axios'
 
    ( async function () {
        const accountId = 1234
        const response = await axios({
            url: `https://app.trackonperformance.com/api/user/password`,
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'Authorization': 'Bearer <your token>'
            }
           
        })


        if (response.status === 201) {
''' #8 Security
            console.log("user got the auth")
: Finish the CICD - project was very open and Haviz had no control
                    const { data } = response
''' #9 Testings
                    console.log({
''' #10 Deployments - Everyweek after CICD is set up in 2 stages
                        "currentPassword": data.currentPassword,
:: From Dev to QA (Approved my Pedro and Haviz)
                        "newPassword": data.newPassword,
:: From QA to Production (approved after Pedro stress testing and final approved by Ben)
                }           
''' #11 Documentation - Create a proper documentation
        }
:: Create flows of all component relations
    } )()
:: Create design portfolio of all components
:: Create a DDT protocol
:: Create technology documentation and implementation (including Open API doc)
''' #12 Core Development - stable the app


```
''' #14 Operations - Correct daily issues

Latest revision as of 09:52, 14 September 2022


Draft Plan (proof of concept

To prove a multiple environment engine, secured by DAO essence, conducting a new developed society through “Science of Governance”


#1API integrations

restAPI example
integrate several open source or with open APIs to PKC
TOP - metrics on performance and CpL
Fossil - Use Fossil's SQlite relational engine, and Version control semantics to manage data assets and drive the commit workflow of Git
GitHub - Ability to deploy through PKC,
GIT - create CICD environments to Github, from Editors
VSC - Ability to program and deploy through
Matomo - metrics on history records
other apps and services
quantUX
WEb3D
QuantUX widget experiment (Guntur)
Apollo Spreadsheets (Pedro’s team 1 developer?)

DID

#4 E-ID - Auth, smart contract, Blockchain
Keycloak (done)
simulated packages (Working with Donald Gao)
#5 E-Land -
#6 E - Catalogue - (future clients such as LKPP)

Only visual simulated packages

#13 Content

Build a new frontEnd design (UI/UX) “new skin” (Consider other Web3 Project Management Website Skins, for example:Wonderverse and Jira)
Create interesting content to introduce new members to the PKC multiple programs
Create presentation of everything we want to build with PKC
Expand online self accountable and self pace education
Measure capacity of students and work force (CpL)
Create a promo video explaining the benefits to the world and the future of PKC


Internal Essential for us, not to the proof of concept

#8 Security

Finish the CICD - project was very open and Haviz had no control

#9 Testings #10 Deployments - Everyweek after CICD is set up in 2 stages

From Dev to QA (Approved my Pedro and Haviz)
From QA to Production (approved after Pedro stress testing and final approved by Ben)

#11 Documentation - Create a proper documentation

Create flows of all component relations
Create design portfolio of all components
Create a DDT protocol
Create technology documentation and implementation (including Open API doc)

#12 Core Development - stable the app

#14 Operations - Correct daily issues