Skip to content
This repository has been archived by the owner on Sep 4, 2019. It is now read-only.

nsip/HITS-API

Repository files navigation

***DEPRECATED (RETIRED)***

*This repository is obsolete and retired (archived). This is an unmantained repository. In particular, note that it is not being updated with security patches, including those for dependent libraries.*




URGENT TODO: Self Help

	* Which user - make sure it is using the logged in user, else redirect
	* Developer Dashboard - Each app needs to link to the developer dashboard automatically (which includes client)

STRUCTURE:

HITS 
	- This is the main database - the central system in this case.

VENDOR 
	- A vendor is here to group a set of apps together and give them control.

SIS 
	- Student Information System
	- Technically could point to anything
	- Currently it is just which DATABASE on our server
	- Think of this as either a SCHOOL or a DISTRICT - the SIS.
	- Vendor - Optional owner of this SIS - to allow updates/replacing.

PERMISSIONS
	- Set of permissions (templates, or more specific, can change over time)

APP 
	- Application that belongs to a vendor
	- Connected to a SIS
	- Connected to Permissions
	- THEREFORE vendor needs to create new APP for Each SIS connected to
		(this could be tweaked in the future to allow a 1:many relationship, but too hard now)

APP_LOGIN
	- Provide a login for an app
	- Login & Password (or what ever fields required) for a SIF login
	- Which SCHOOLS they can access (we now have support for schools - 1 or more)
	- NOTE: We do not actually store which schools yet, this may be a mistake though, but this is central and it technically knows nothing about schools.


Vendors are easy - they login as a vendor and can manage their apps. There might be rules about which SIS they can link to, or which permissions they can choose, but basically they are single users logging in and managing the apps.


Principals - these are a little tricker. Since the principal is really logging in via their SIS. Once they are logged in there (this doesn't actually exist yet) they could now see the APP that are associated with their SIS and grant approvals. This last part will require a few new tables to manage the schools and the groups or other rules based on lists of students.



NOTES:

	Limited API assumed from a specific Vendor Login.
	- ONE Login per Vendor ???
	- 

API:

	/tags		Manage arbitrary tags against a user
		Types of tags (e.g. ...

		* POST tag to current user ?
	
		* 


	/edit ? 
	/metadata ? 
	/vendor ?


VENDOR PROFILE:
	Name & Logo
	Address, About Us ?

APPLCATIONS:

	/app		
		GET		List my apps
		POST	Create a new app
	/app/:id
		GET		Get an entry
		PUT		Update
		DEL		Delete

	    * id                              Automatically generated
        * name                    Short name - useful in URLs etc. Unique to this Vendor
        * title                   Title of the application
        * description             Full description
        * site_url                Site URL
        * about                   Optional URL about this application
        * tags                    Tags, such as category
        * icon                    Optional URL for the Icon
        * public                  Yes / No 
		* APP Permissions - list...
			* List of SIF Objects or *
			* Which objects you can READ/WRITE
			* Which fields you can READ/WRITE in an object
			* (maybe) Which queries you can execute ???

	PERMISSIONS
		APP


	/tour ...


SCHOOL APP:
	Join from School to App
		* School ID
		* Application ID
		* DateTime
		* Members = "*" - Static, whole school now

STATS:

	Histagram display
	Number of times users have hit app
	/usage
		* Date/Time
		* Vendor ID
		* Action = ???
		* App ID
		* Which zone / School (Zone ID)

SCHOOL / PRINCIPAL

	/school/app		List apps configured for the school
		POST	Enable new app - can be existing or local new

QLD: Levels... 



DATA FLOW

	
CREATE NEW VENDOR
	* Login using REMOTE_USER
	* Create Vendor matching REMOTE_USER
	* Create School matching REMOTE_USER


JAVASCRIPT?

	* School App
		- List Applications marked Public (or my own)
		- POST /school/:id/app app_id

Alternative to documentation
	Swagger
	https://github.com/devo-ps/carte
		http://devo.ps/carte/