Giter VIP home page Giter VIP logo

cits3200-project's People

Contributors

blaiddyd avatar elornias avatar jabr0ski avatar naazyon avatar pixeladed avatar systemvaz avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

systemvaz

cits3200-project's Issues

Bootstrap Next App

Description
Init next app and put it into the GitHub repo.

Definition of done

  • Functional Next app that serves pages
  • Instructions on how to view page

Tasks

  • Create next app.
  • Upload to GitHub.

Image preview

Description
Allow users to see a preview of their images before they start processing them

Definition of done

  • Display preview of all images selected

Tasks

  • Implement image preview
  • Documentation
  • Test

Setup DB & Object Storage

Set up MongoDB and cloud storage for storing information on images.

Tasks

  • Set up MongoDB,
  • Set up Google Cloud storage.
  • Achieve peak storage.
  • Tests
  • Documentation

Natural Language Processing

As a user, I want to convert an audio file to text so I can quickly transcribe an audio file.

  • Audio upload form
  • Transcribe audio file
  • Turn audio file into a .txt file
  • Audio task progress page
  • Audio task result page

User guide

Description
Create a step by step tutorial to guide users through how the interface work and what they need to do.

Definition of done

  • User can click a button to see the guide
  • User can see screenshots and descriptions of inputs, outputs and indicators

Tasks

  • Guide content (description & screenshot)
  • UI
  • Test
  • Documentation

Report on progress

Description
Make backend endpoint that reports on the progress of image processing.

Definition of done

  • Functional endpoint
  • Given id of a task
  • Return the progress of the task
    • % of processed/unprocessed task
    • number of animal images
    • number of blank images

Tasks

  • Establish endpoint.
  • Determine progress status.
  • Send progress status to frontend.
  • Tests
  • Documentation

Progress indicator

Description
Display the progress of an ongoing task:

  • %
  • pending count
  • blank count
  • with animal count

Definition of done

  • Accurately display statistics about an ongoing task

Task

  • Tracking
  • UI
  • Documentation
  • Test

File uploading form

Description
Modify the page created in #5 to include a form such that users can

  1. Select and upload their GCP key
  2. Select and upload multiple images

Definition of done

  • A form is present on the page with no errors
  • User can select a file on their system to upload as a key
  • User can only select a .json file as the key
  • User can select multiple images on their system to upload as images
  • User can only upload images that are supported by GCP Cloud Vision API

Tasks

  • Implement key file input
  • Implement images file input
  • Implement key file type restriction
  • Implement images file type restriction
  • Docmentation
  • Tests

Authentication endpoints

Description
Allow users to log in, signup and store account-specific information

Definition of done

  • Users can signup with
    • email (unique)
    • password
    • name
    • GCP key
  • User can log in using their email and password
  • The password isn't stored in plain text
  • the endpoint responds with status 200 and all of the user's information if the credentials are correct
  • otherwise respond with status 401

Tasks

  • Database setup
  • signup and login controller
  • create signup and login endpoints
  • Documentation
  • Test

Interface homepage

Description
A simple web page that displays the title of the module, a short description

Definition of done

  • Instructions on how to view the page
  • Able to view the page on desktops without errors
  • Include a sensible title and description of the module

Tasks

  • Create a title and a description
  • Implement home page
  • Document how to view the page

Create progress page

Description
A page that describes the status of a task

Definition of done

  • View progress of any task given an id
  • Show the % processed
  • Show count of animal, blank

Tasks

  • UI
  • Link to #21 endpoint
  • Documentation
  • Test

Classify cute animals

Description
Establish backend endpoint that classifies images into blank images and animals.

Definition of done

  • Function able to classify images given image URLs into blank or animals using the images' metadata & Vision API

Tasks

  • Establish backend endpoint.
  • Classify animal pics.
  • Classify blank pics.
  • Tests
  • Documentation

Animal image classification endpoint for a single image

Description
Create an HTTP endpoint that receives an image link and a GCP key (JSON object) as input and respond with whether or not that image is a photo of an animal.

Definition of done

  • Compiles without errors
  • Able to access the endpoint through localhost:{port}/{path}
  • Endpoint receives an image URL either through params, body or query string
  • Responds with status 400 if no image URL was given
  • Otherwise, responds with status 200 and a JSON object indicating whether the image is of an animal
  • Documentation on how the endpoint works
  • Documentation on how to use the endpoint
  • Accept GCP key as input

Tasks

  • Implement HTTP server
  • implement GCP key parsing
  • implement image metadata parsing
  • implement GCP Vision API call
  • implement endpoint routers and handlers
  • documentation
  • tests

Create download page

Description
A page where users can download the result of a task

Definition of done

  • A page that shows 2 links to download "Animal.zip" and "Blank.zip"
  • Clicking on either link downloads the file to their computer

Tasks

  • UI
  • Links
  • Documentation
  • Test

Video Object Detection

As a user, I want to identify objects in a video to quickly analyse a video

  • Video upload
  • Object detection frame by frame
  • Convert output to CSV
  • Form to submit video task
  • Video task progress page
  • Video task result download page

Connect interface to endpoint

Description
Connect the form created in #7 to the endpoint created in #4 and display the result of the task to the user. Images are classified one by one and the result is immediately displayed to the user.

Definition of done

  • Use the image classification endpoint to process selected images
  • Display processed images in their respective classification
  • Process all images selected by the user
  • Process each image individually
  • If the endpoint fails, put the image back in the queue to try again

Tasks

  • Process image uploaded using the endpoint
  • Display processed images in different groups
  • Display pending images to be processed
  • Documentation
  • Test

Result download

Description
Modify the page created in #8 to allow users to download the result of the task. Users are able to download "with animal" images as a zip file and download "blank" images as another zip file

Definition of done

  • Users can see a download button to download the 2 groups of images
  • Users can download each group of images separately
  • Able to download each groups as a zip file

Tasks

  • UI
  • implement zip file creation
  • implement downloading file
  • documentation
  • test

Create Cypress Tests

Create cypress tests for end-to-end testing in order to test front-end and user experience.

Tasks

  • Install Cypress.
  • Create elementary Cypress tests.
  • Documentation

File downloads

Description
Implement file download endpoint and functionality in the backend. Files should be zipped for download.

Definition of done

  • 2 separate endpoints (one for animal, one for blank)
  • each endpoint, given a task id, respond with a single zip file containing all images in each category

Tasks

  • Establish endpoint.
  • Zip files.
  • Ready them for download.
  • Tests.
  • Documentation.

Multiple images upload

Description
Allow multiple images to be uploaded (same logic as #4 ) and returns a response similar to #3

Definition of done

  • Allow multiple images to be uploaded
  • Responds with the classification of all images uploaded
  • Documentation on the process and how to use the endpoint

Tasks

  • Implement multiple file upload handler
  • documentation
  • test

Bootstrap back end

Initiate backend by establishing routing and controllers.

Tasks

  • Init Next app.
  • Init controllers.
  • Init API routes.
  • Tests
  • Documentation

As a user, I want to be able to upload audio files so I can do machine learning on them.

  • Create a new Audio module under the audio module
  • make a stub for processing, progress and download (ie doesnt do anything)

Definition of done

  • New module appears on the front end module page
  • Name: Audio Transcription
  • Type: Audio
  • Clicking on the module opens the file upload form
  • Can upload a JSON key
  • Can upload 1 audio file within supportd encodings
  • Upload and go to progress/download page
  • 1 type of download available called Transcription

As a user, I want to be able to download my transcribed audio file in a text format so I can use it elsewhere.

  • Implement the download function of the audio module
  • Receive a project object
  • Retrieve the transcription result through the project's resource (in the result field)
  • Write this result to a .txt file
  • This function should return the absolute path to this .txt file

It is very important that the absolute path is returned and not a relative path. Have a look at other modules to see an example of path.resolve which gives you an absolute path in return.

Image uploading for image classification endpoint

Description
Instead of providing an image URL, the endpoint now accepts a single image uploaded. The endpoint should use this uploaded image to create a response instead

Definition of done

  • Able to use a front end web form to upload an image to the endpoint
  • Responds with the same status and body as #3

Tasks

  • Implement file upload handler
  • Documentation
  • Test

Upload Form error

Selecting files and clicking submit causes "Oh no something went wrong" error with '0/x uploaded'. Clicking 'ok' on the error message and submitting again causes the error to occur again, but with '1/x' or '2/x uploaded'. (Where x is the number of images to be processed)

File Upload Form

Description
Modify the page created in #5 to include a form such that users can

  1. Select and upload their GCP key
  2. Select and upload multiple images

Definition of done

  • A form is present on the page with no errors
  • User can select a file on their system to upload as a key
  • User can only select a .json file as the key
  • User can select multiple images on their system to upload as images
  • User can only upload images that are supported by GCP Cloud Vision API

Tasks

  • Implement key file input
  • Implement images file input
  • Implement key file type restriction
  • Implement images file type restriction
  • Docmentation
  • Tests

Bootstrap front end

Description
Initiate front-end in terms of file structure, routes using Next.js.

Definition of done

  • Linting
  • Routers
  • Data fetching
  • TS?

Tasks

  • File Structure
  • Routing
  • Tests
  • Documentation

PR #27

History page

As a user, I want to see tasks that I've submitted in the past so I can check on their progress or download results

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.