Skip to content

User interfaces

The following table contains a preliminary list of the identified User Interfaces required in the system. This list is non-exhaustive, and subject to change. The "flow" through the system as described in the "Links to" column is considered to be the optimal flow through the system as currently described. As Developers develop the system, more interfaces may be identified, which could lead to changes in the flow through interfaces. It is also important to note that the "flow" is only 'positive' and does not account for when a user may encounter errors or issues with the system ('negative' flow). It is up to the developers to account for this 'negative' flow.

NoUser interface nameDescriptionLinks to
1LandingThe main page the user sees. Presents the user with hyperlinks to the majority of the screens listed below.All
2Subject ViewThis page is subject specific. It allows further searching/viewing of documents within a subject.3,4,13
3Search (Results)This page allows for searching of documents based on tags created when the documents are uploaded. It provides optional filters along with the search results.4,13
4ContributeThis page allows a user to contribute documents and to tag them while doing so.13
5Other Useful OER'sThis page directs the user to other OER resource pages.All
6ContributorsThis page displays all the contributors to the project. This page needs to be updated to be dynamic.All
7About UsThis page provides information about the project, the project website, and the project founders.All
8Self-Directed LearningThis page provides links to Self-Directed Learning resources available to users.All
9ModerateThis page will present a user with all the files uploaded by users, that need to be moderated.
10Account CreationThis page allows users to create accounts.
11Password ResetThis page allows users to reset their passwords should they forget them.
12AnalyticsThis page allows administrators to view the analytics information gathered on the website.
13FAQThis page provides users with answers to some frequently asked questions.All
14User ManagementThis page allows an administrator to change the access levels of users as well as view all the users on the system.

Hardware interfaces

The system requires the following Hardware interfaces.

TypeDescriptionInteractions
Keyboard-like HIDA HID that is used to input keystroke data into the website’s text fields and interact with buttons.
Mouse-like HIDA HID that is used to select buttons, fields, and files on the website.Selecting (Focusing) on buttons and fields.

Software and communications interfaces

The system requires the following types of Software interfaces. This list is non-specific, non-exhaustive, and subject to change as the development process proceeds.

TypeDescriptionInteractions
DatabaseRelational or non-relational databases used to store documents, user data, transaction logging etc.Read/Write, back up and restore.
File Storage SystemThe primary file storage for any documents uploaded to the system.Read/Write, back up and restore.
APIRESTful API: Primary access to services and features of the system will be accessed through this API gateway.The front-end application will make requests and receive responses in JSON. OAuth2 is suggested for security.
Hosting Operating SystemUbuntu LTS release: The underlying operating system for the application and related services.The Operating System will be responsible for providing a runtime for the entire application and servers.
FrameworkA web application framework for building the frontend user interface.UI rendering and user input for enabling communication with the API gateway.
ToolDocker: A platform for developing, building and shipping and running software in containers.Builds in CI/CD pipeline, Auto-scaling for load balancing.
AuthenticationUsers will need to be authenticated for access to the system.Users will provide their login credentials in the frontend application for authentication.
Version ControlThe git version control platform will be used on GitHub to facilitate version control and developer collaboration.Branching/Push and pull requests will be made via a shell or on GitHub’s website.