Professional Documents
Culture Documents
BackendV1 Phase 1
BackendV1 Phase 1
○ 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 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)
- 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).
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
The site and manual info will look like the following: http://www.objgen.com/json/models/Q3bX
● 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
- 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
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
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
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
- 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
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
t.b.d.
Notes:
Notes:
● Handling local time - input / output translations
● Paginations
● What happens when we move things?
○ Devices between sites
○ Sites between groups
○