Skip to content

Project Proposal

Benito Sanchez edited this page Feb 22, 2017 · 6 revisions

Introduction

##Section 1: Project Definition

Name of the Project

    Architects' Image Workbench - 1

Members of the team:

Leader: 

     Austin Zielinski  [email protected]

    I’m passionate about computer science from bits to big data. I’m most excited 
    to work with technologies I’ve never used, and lead our talented team in 
    making Panafold’s vision a reality.


Members:

     Gabriel Zapata  [email protected]

    I have worked in the realm of web applications very briefly during my 
    internship, more specifically with AngularJS in which I received 
    knowledge about MVC dependent technologies, but have never  worked with 
    ReactJS but am excited for the knowledge I will gain on it. I am also very
    interested in how we will use Amazon’s Rekognition.  
    
    Araceli Gopar  [email protected]

    I have worked with web development tools and databases before but not with 
    all tools needed for this project. I look forward to starting the project 
    as well as learning new technologies.

    Benito Sanchez  [email protected]

    I have worked with web development before but only in a class environment.
    My latest experience is in Android development. I have not worked with the 
    tools that were listed for this project but I am looking forward to learning! 
    I am excited to work on this project and learn the most out of it!

###Project Mission / Motivation

Currently, Panafold enables users to share ideas through Notebooks with each 
other. Although notes are needed in their industry, they would better benefit 
by sharing their ideas through images and sketches. In order to enable image 
sharing, designersare expected to tag images manually which is time consuming. 
They usually upload a high volume of images which can make the tagging process 
tedious. Consequently, designers can only share their images with specific 
designers, which blocks design ideas to flow and inspire all designers. 

Project Objective

We will work with our project sponsor, Panafold, to create a fast and intelligent 
web app by the end of the semester. Our web app will automate tagging to reduce 
the time designers’ spend doing the process, and implement a searchable database 
to allow them to share their work and be inspired by others.

Project Approach

The team will first focus on designing a strong and robust architecture Work 
towards a simple and fast interface using ReactJS, and NodeJS. Save and speed up
image search using MySQL, NodeJS, and AWS. Image tagging will also be automated
using Amazon Rekognition.

Austin will start with sole responsibility of the front end, and Gabriel sole 
responsibility of the backend. Araceli and Benito will become familiar with 
Rekognition to start, then Araceli will move to front end, and Benito to back when
we have a good grasp of the technology.

Project Goals

The goal for this project is to allow designers to share images as fast and smooth
as possible. In order to speed the process for designers, tagging will be automated
using deep learning. This project will also enable designers to share images by 
creating a searchable database.

Metrics

    * Image upload will be determined successfully if designers are able to upload 
      90% of the time.
    * If image is uploaded successfully 100% of the images should be displayed back
      to the user.
    * In order to measure our success with image tagging, every uploaded image 
      should have at least one tag. 
    * As soon as the user clicks [enter] (to start searching) the search should
      take less than 1 second.	
    * The time for the website to respond to the user’s action should be kept at
      less than 5 seconds. 
    * We will be using analytics or logging to measure our success rate. 

Project Deliverables

The main deliverable is a web app where users can upload and share images. A 
searchable database will be used to store the images and retrieve them, and 
Rekognition will tag images automatically. We will document our API calls and other
information about our project, the documentation will be posted on the team’s
github wiki pages. 

Dependencies / Risks

* Uploading an image
    - Some image formats might be difficult to work with
    - Can we support high quality images? Is the website useful if we can't?
* Storing images to database
    - Size of images/amount of images affecting database performance
    - How can we store tags and make them quickly searchable?
* Implement Amazon's Rekognition to the project
    - Lack of familiarity using Rekognition
    - Rekognition might not be able to recognize certain items in the images

Project Milestones

1. Upload and save image    DATE: Friday, Feb 24
     a. Create a basic interface for the user to upload an image
     b. Save image to the database
     c. Display image to the user from the database.
2. Create Search Engine    DATE: Friday, March 17
     a. Set up the database to save images
     b. Search Images based on tag
     c. Display results for user
3. Involve Rekognition    DATE: Friday, April 7
     a. Implement Rekognition to be able to tag images
     b. Save the tags provided by recognition to the database.
4. Intelligent Search on the database    DATE: Friday, April 28

Extra Milestones (Time Permitting)
    * Allow user to update an 'album' of images
    * Allow users to edit tags
    * Intelligent search on the database
    * Accounts
    * Social 
        - Ratings (likes, points)
        - Comments

###Section 2: Use Cases

Title: User uploads an image to Designer's ImageNGine
Actor: Panafold user, Rekognition, Database
Scope: User level, Image Database
Summary: 
    1. User arrives at home page
    2. User clicks on upload button
    3. User uploads image
    4. Image is tagged by Rekognition
    5. Image and tags are stored in database

Title: Panafold User Searches for Image by Tag
Actor: Panafold user, Database, Search Engine
Scope: Image Search Engine
Summary:
    1. User enters search query
    2. User clicks search button
    3. Query is parsed and interpreted by search engine
    4. Relevant images grabbed from database by matching tokens to tags
    5. Images presented to user

Title: Panafold user can edit tags
Actor: Designers, Rekognition, Database
Scope: Users will upload an image
Summary: 
    1. A designer uploads an image to database
    2. Image is returned to user showing the proposed tags
    3. User clicks “edit tag” button
    4. User clicks ‘x’ to delete unwanted tags
    5. User clicks ‘+’ to add new tags
    6. User chooses to save
    7. Image and tags are saved to database

###Section 3: Acceptance criteria

1. Auto Tagging
   Given an image interacts with Rekognition
   When a user uploads an image 
   Then the image will be automatically tagged by Rekognition
2. Upload Images
   Given that the image size is acceptable by Rekognition
   When a user uploads the image
   Then the image is stored in the database successfully

3. Search Images
   Given there is a database of tagged images
   When a user submits a query
   Then the database should be searched for tags matching the query