Anda di halaman 1dari 8

● Libraries

○ django-organization
○ django-mptt
○ Custom user models
○ JWT Auth
● Concepts
○ User
○ Organization
○ Site / Group
○ Campaign
○ Splash Page
○ Permissions
■ Organization Administrator
■ Manage
■ Change
■ Read
○ Audit Log
○ Invitation
○ Access Point
○ Inventory
○ Controller Interface
○ Dashboard
○ Wifi Visitor
○ Guest Wifi
○ Secured Wifi
■ Sponsor
■ Ticket
■ Code
○ GDPR

● Outline
○ Part 1
■ Project Setup / Architecture
■ Users
■ Organizations
■ Sites / Groups
■ Rights
■ Generalities
■ Invitations
■ Audit Logs
■ User Management
■ Permissions

○ Part 2
■ Inventory Management
■ Wifi Configuration
■ Splash Pages
■ Campaigns

○ Part 3
■ Dashboards
■ Visitor Display
■ GDPR

○ Part 4
■ Splash page generator structures

Part 1 - Architecture and Setup


Architecture
- Project Setup
- Multiple environments
- local, development, staging, test, production, demo
- Postgres DB
- Test harness
- CI / CD

Part 2 - Users

Accounts
- Superusers - This will be anyone on the internal technical team, who can access all
organizations for all clients, as well as see technical management controls

- Admins - Can see all info for all organizations, but do not have access to technical
controls

- User - All users who are not internal to the company. These users can associate with
different organizations, but are their own independent entities (not owned by an
organization)

Authentication Commented [1]: User:


- id: primary
- Registration - http://static.ivizone.com/phoenix/index.html#/register - name: str
- Create custom user model - password: str
...
- Create all registration flow emails
- Log user in upon registration and send to dashboard
- Detect user's prefered language from browser, and store as default in the user
profile
- Activity Log: User created account

- Password Forgotten - https://tools.ohwee.fr/Ivizone/V6/#p=01-mdp_oublie


- If user email found
- Send password reset token
- Activity Log: User requested password reset

- Password Reset - https://tools.ohwee.fr/Ivizone/V6/#p=01-mdp_oublie_-_suite


- Change User's Password (don't log them in)
- Send confirmation message to frontend
- Activity Log: User reset password

- Login - https://tools.ohwee.fr/Ivizone/V6/#p=01-connexion
- Handle login flow (SPA / JWT?)
- Activity Log: User logged in
- Metadata: ip address, device (user agent)
-

User Profile
- User Profile - https://tools.ohwee.fr/Ivizone/V6/#p=22-mon-compte Commented [2]: UserProfile:
- user_id: fk
- prefered_locale: str ?(langauge or locale?)
- phone_number: str
Part 3 - Organizations -

New Organization
- Create Organization - https://tools.ohwee.fr/Ivizone/V6/#p=02-nouvelle-organisation_- Commented [3]: Organization:
_etape_1 - id: primary
- uuid (same?): str
- Add a new Organization to the DB with the specified Name, and Region - name: str
attributes - region: str
- created_at: datetime
- Set the user who created the organization, as the Administrator of the
- updated_at: datetime
Organization
- Set all superusers and site administrators as Organizational Administrators for
the Organization
- Generate Unique ID for organization (UUID ok)
- Audit log: User created Organization
- Metadata - before: "", after: "organization_name"
- Delete Organization
- Removes Organization record, and all associated data, records
- Conditions:
- To be determined
- Associated Records:
- To be determined
- Audit Log: Organization deleted
- Metadata: deleted by
-

Organization Settings
- General Settings - to be added
- Wifi Parameters - https://tools.ohwee.fr/Ivizone/V6/#p=03-organisation-parametre_-01 Commented [4]: OrganizationWifiConfiguration
- Save the OrganizationWifiConfiguration configuration attribute to the model. - id: primary
- configurable_id: fk
The configuration attribute json will have the following format - configuration: jsonb
http://www.objgen.com/json/models/LUVi or
Commented [5]: Will be used by the splash page
http://www.objgen.com/json/models/VO2cB server
-
- Valid Inputs:
- Validate afterwards - later on. If invalid, throw exception, and error to
user
- Audit Log: User changed wifi configuration
- Metadata: Organization name
- Before, after, entire json obj
- Social OAuth - https://tools.ohwee.fr/Ivizone/V6/#p=03-organisation-parametre_-02 Commented [6]: Will be used by the splash page
- We will want to encrypt the oauth_secret_key in the DB server
- http://www.objgen.com/json/models/d1WSI
- Store in Organization.oauth_credentials : jsonb
- Data Export - https://tools.ohwee.fr/Ivizone/V6/#p=03-organisation-parametre_-03 Commented [7]: We haven't defined how this export
- http://www.objgen.com/json/models/poMV8 takes place yet. Need to implement a trigger
somewhere on the frontend
- Email and SMS - https://tools.ohwee.fr/Ivizone/V6/#p=03-organisation-parametre_-04
- Clicking the “Send Test Email” button should save the email settings to the Commented [8]: Organization
- email_configuration
Organization model, and send a test email to the user’s email address - sms_configuration
- Clicking the “Send Test SMS” button should save the sms settings to the
Organization model, and send a test sms to the test number provided Commented [9]: Need to update form to have a test
- Clicking the “Save Email Configuration” button should save the email settings to SMS input number
the Organization model
- Clicking the “Save SMS Configuration” button should save the sms settings to
the Organization model
- Email json http://www.objgen.com/json/models/Y8Nnm
- SMS Json - http://www.objgen.com/json/models/GZng6

Part 4 - Generalities

Main
- Main menu, Navigation
- Organization Listing - https://cl.ly/2m2u1c3h1X3X
- Show all organizations that user has access to. This user's access could
be either through their role as administration of the organization, or
through a limited subset of rights for a sub-selection of sites or groups in
the organization (manage, read, write).

- Superusers and site admins should have administrator access to all


organizations by default (existing and future)

- Logo Commented [10]: Organization:


- Return the url for the prefered logo, for the selected organization. This - logo_url: str
will be the organizations logo if it has been uploaded, otherwise this will
return the platform default logo

- Search - Not in scope for this phase - https://cl.ly/2x0b2z311R1N


- Notifications - Not in scope for this phase - https://cl.ly/3C0a0W2Q3c1b

Contact Us

Clicking on the Send button for each of these three screens, should send an email to the
configured INTERNAL_SALES_EMAIL address (sales@ivizone.com) This can be a single mail Commented [11]: TODO: Have Ohwee design mail
with all of the data submitted present http://www.objgen.com/json/models/EZ1r6 templates for each of these

- https://tools.ohwee.fr/Ivizone/V6/#p=02-contact_-_nous_contacter
- https://tools.ohwee.fr/Ivizone/V6/#p=02-contact_-_etre_rappele
- https://tools.ohwee.fr/Ivizone/V6/#p=02-contact_-_prendre_rendez-vous

Part 5 - Sites and Groups


The new site wizard allows users to create a new Site, and provision it witth access points. The
access points can be specified in three different ways. 1) manually entering the AP name,
type, and mac address, 2) uploading a vendor inventory csv file, 3) uploading a custom CSV or
excel file.

The site and manual info will look like the following: http://www.objgen.com/json/models/Q3bX

● Create one Site instance

● If a group_id is specified, add the site, underneath the specified Group hierarchy
(MPTT). Otherwise add it to the OrganizationSites root group Commented [12]: Device
- id: pk
- organization_id: fk
● Create Device for each access point present. - site_id: fk
○ Insure external id globally unique, isn’t already existing (else return error - should - name: str
- manufacturer: str
do in frontend before submit) - this could be a backend validator endpoint - device_id: str (mac address)
Commented [13]: fuck, this doesn't work for
● Associate the Device.organization_id with the Organization inventories. Inventories have more than one site. The
● Associate the Device.site_id with the Site it was uploaded with inventory upload needs to live in the Inventory
Management space
New Site: - this is going to need some work and better thought
- https://tools.ohwee.fr/Ivizone/V6/#p=04-new-site_-1
- https://tools.ohwee.fr/Ivizone/V6/#p=05-new-site-2_a
- https://tools.ohwee.fr/Ivizone/V6/#p=05-new-site-2_b
- https://tools.ohwee.fr/Ivizone/V6/#p=05-new-site-2_c
- https://tools.ohwee.fr/Ivizone/V6/#p=05-new-site-3

Site and Group Management:

- Listing - https://tools.ohwee.fr/Ivizone/V6/#p=02-groupe
- New Group - https://tools.ohwee.fr/Ivizone/V6/#p=04-new-groupe
- Delete Group - https://tools.ohwee.fr/Ivizone/V6/#p=04-new-groupe_-_suppression
- Site Detail - https://tools.ohwee.fr/Ivizone/V6/#p=03-site-detail
- Group Detail - https://tools.ohwee.fr/Ivizone/V6/#p=03-groupe-detail

Part 6 - Inventory Management

Inventory Management:
- https://tools.ohwee.fr/Ivizone/V6/#p=31-gestion_equipement
- https://tools.ohwee.fr/Ivizone/V6/#p=31-gestion_equipement_-_deplacer
- https://tools.ohwee.fr/Ivizone/V6/#p=31-gestion_equipement_-_tags
- https://tools.ohwee.fr/Ivizone/V6/#p=31-gestion_equipement-_detail

Part 7 - Wifi Settings

Site - Wifi Configuration


- Guest - https://tools.ohwee.fr/Ivizone/V6/#p=03-site-parametre_-_parametre_wifi_-_01
- Tickets - https://tools.ohwee.fr/Ivizone/V6/#p=03-site-parametre_-_parametre_wifi_-_02
- https://tools.ohwee.fr/Ivizone/V6/#p=03-site-parametre_-_parametre_wifi_-_03
- https://tools.ohwee.fr/Ivizone/V6/#p=03-site-parametre_-_parametre_wifi_-_04

Wifi Parameters
- https://tools.ohwee.fr/Ivizone/V6/#p=02-wifi_guest_-_02_-_parametres_-_03
- https://tools.ohwee.fr/Ivizone/V6/#p=02-wifi_guest_-_02_-_parametres_-_02
- https://tools.ohwee.fr/Ivizone/V6/#p=02-wifi_guest_-_02_-_parametres_-_01
- https://tools.ohwee.fr/Ivizone/V6/#p=02-wifi_guest_-_02_-_parametres_-_00
- https://tools.ohwee.fr/Ivizone/V6/#p=02-wifi_guest_-_02
- https://tools.ohwee.fr/Ivizone/V6/#p=02-wifi_guest_-_01_-_parametres
- https://tools.ohwee.fr/Ivizone/V6/#p=02-wifi_guest_-_01
- https://tools.ohwee.fr/Ivizone/V6/#p=30-wifi_authorisation_listing_-_01
- https://tools.ohwee.fr/Ivizone/V6/#p=30-wifi_authorisation_detail_-_02

Part 8 - Splash Page

Splash Pages
- https://tools.ohwee.fr/Ivizone/V6/#p=07-splash-pages
- https://tools.ohwee.fr/Ivizone/V6/#p=08-new-splash-page
- https://tools.ohwee.fr/Ivizone/V6/#p=08-new-template
- https://tools.ohwee.fr/Ivizone/V6/#p=08-mode-projet

Campaign Management
- https://tools.ohwee.fr/Ivizone/V6/#p=14-campagnes
- https://tools.ohwee.fr/Ivizone/V6/#p=20-new-campagne-1
- https://tools.ohwee.fr/Ivizone/V6/#p=20-new-campagne-2_0
- https://tools.ohwee.fr/Ivizone/V6/#p=20-new-campagne-2_a
- https://tools.ohwee.fr/Ivizone/V6/#p=20-new-campagne-2_b
- https://tools.ohwee.fr/Ivizone/V6/#p=20-new-campagne-2_c
- https://tools.ohwee.fr/Ivizone/V6/#p=20-new-campagne-3
- https://tools.ohwee.fr/Ivizone/V6/#p=20-new-campagne-4
- https://tools.ohwee.fr/Ivizone/V6/#p=20-new-campagne-5
- https://tools.ohwee.fr/Ivizone/V6/#p=16-campagne-detail-2
- https://tools.ohwee.fr/Ivizone/V6/#p=17-campagne-redirection_-_01
- https://tools.ohwee.fr/Ivizone/V6/#p=17-campagne-redirection_-_02
- https://tools.ohwee.fr/Ivizone/V6/#p=17-campagne-redirection_-_03
- https://tools.ohwee.fr/Ivizone/V6/#p=19-campagne-parametres

Part 9 - User Management


Inviting a User to an Organization
- https://tools.ohwee.fr/Ivizone/V6/#p=06-newuser
- https://tools.ohwee.fr/Ivizone/V6/#p=06-newuser_-_confirmation_compte

If User exists in system

If User does not exist in system

Listing all Users


- https://tools.ohwee.fr/Ivizone/V6/#p=06-user

User Detail Page

- https://tools.ohwee.fr/Ivizone/V6/#p=06-user_-_detail
Remove User from Organization
- https://tools.ohwee.fr/Ivizone/V6/#p=06-user_-_delete_confirmation

User Activity

- https://tools.ohwee.fr/Ivizone/V6/#p=06-user_historique_d_activite

Part 10 - Monitoring and Metrics

Dashboard
- https://tools.ohwee.fr/Ivizone/V6/#p=06-dashboardexport
- https://tools.ohwee.fr/Ivizone/V6/#p=11-dashboard

Wifi Visitors
- https://tools.ohwee.fr/Ivizone/V6/#p=23-visitor
- https://tools.ohwee.fr/Ivizone/V6/#p=23-visitor_-_detail

Notifications
- Notification Bar - https://tools.ohwee.fr/Ivizone/V6/#p=02-notification

Part 11 - GDPR
- https://tools.ohwee.fr/Ivizone/V6/#p=24-gdpr

Part 12 - Splash Page Generator

t.b.d.
Notes:

Notes:
● Handling local time - input / output translations
● Paginations
● What happens when we move things?
○ Devices between sites
○ Sites between groups

Anda mungkin juga menyukai