Skip to content

Latest commit

 

History

History
46 lines (37 loc) · 3.19 KB

be-1.md

File metadata and controls

46 lines (37 loc) · 3.19 KB

CS3099 - Basic Specification

'Backend' Groups

Ognjen Arandjelović (Oggie)*

Overview

The participants of CS3099 have been tasked with designing and creating a data hosting and analysis system for the University's biomedical department. The task has been divided into 3 'sections':

  1. Backend
  2. Machine Learning and Data Analysis
  3. Visualisation and Human-Computer Interaction

Several groups have been assigned to each section, and the best product from each section will be used in combination as the final system.

Initial Deliverable

Project- and user-management server, professionally developed, presented, and documented.

  • Data should be stored in discrete projects.
    • The backend should treat this data as agnostic (short of discriminating based on file format).
      • Ideally, this service should be useful for any project-management system.
      • The database should be aware of dependencies between files, and should act appropriately if a user attempts to delete a file depended on.
    • This data may be images or text.
    • The backend should handle the conversion of files between common file formats.
      • For images, formats such as Leica, Zeiss, and TIFF should be included as supported file types (these are common output formats of devices such as medical microscopes).
      • For text, formats such as CSV and XLS should be supported.
      • The ML and HCI groups may also request other file formats, either for basic functionality or for extension work. Make sure to cater to as many other groups as possible!
    • Folders within projects should be possible, for grouping of relevant data.
  • A user management system should be used to control actions on projects/data.
    • Creating, viewing and removal of projects should also be accounted for.
    • Adding, viewing, editing and removing of files within a project should be actions controlled by permissions given to users on a per-project basis.
    • Adding, viewing, editing, and removing users (e.g. admin or superuser abilities) should be controlled by user permissions.
  • The server should provide service through one or more APIs.
    • Discuss with other groups about important interactions between their service(s) and yours, and design with other BE groups a common API for other groups to use.

Additional Points of Interest

*Revised by JH Project Paticipants