Giter Site home page Giter Site logo

eventscan's Introduction

EventScan

Table of Contents

  1. Overview
  2. Event Scan Function Summarization
  3. Product Spec
  4. Wireframes
  5. Schema

Overview

Description

Use the Captured Image and OCR library to Scan information, and create event on calender base on it.

  • Category: Photo & Calendar
  • Mobile: Uses camera, mobile only experience.
  • Story: Allows users to manage their schedule through pictures.
  • Market: Anyone use camera to store detailed information about the event.
  • Habit: Users can create event throughout capturing the image or directly entering the information.
  • Scope: Capturing image, scanning the words from the image, manipulate the information, create the event.

Event-Scan-Function-Summarization

Camera View Controller:

  1. Importing AVFoundation for displaying live camera preview on the Safe Area
  2. When the middle button clicked
    • current image of the preview captured for display on UIImageView 
      
    • starts parsing through Vision Helper struct
      
  3. When parsing is completed
    • clear and confirm button appears
      
  4. When clear button clicked
    • clear and confirm button become invisible 
      
    • image is removed form UIImageView
      
  5. When confirm button clicked
    • parsed data is transferred into the EventDataViewController
      
    • the new screen appears for selection
      

Vision Helper struct:

  1. create textRecognizer through Firebase and FirebaseMLCommon
  2. fix the rotation of the image
  3. change the image to the VisionImage for calculation
  4. process the VisionImage through textRecognizer
  5. return the text part of the result

Event Data View Controller:

All the data handling is done through Array of Array of EventData Object

  1. If Previous Bar Button clicked, it goes back to the previous selection or dismiss the screen if not possible
  2. If Next Bar Button clicked, it goes forward to the previous selection, or dismiss the screen if not possible
    • If dismiss the screen:
      * transfer the final data as an struct to the detail screen
      * activate the static data in DetailViewController for recognition of data source
      

Detail View Controller:

  1. If data source is camera or list view:
    • it fills in the field according to the received data
      
  2. If cancel button is clicked:
    • it resets all the fields to its original state
      
    • returns to the data source if it exists.
      
  3. If confirm button is clicked:
    • it resets all the fields to its original state 
      
    • save the entered data into the CoreData
      
    • create event on calendar through EventKit or edits event if event already exist
      
    • transfers to the list view
      
  4. Resets all the data for data source

List View Controller:

  1. Creates each cell for display based on data in CoreData
  2. If any cell selected transfers selected row to the Detail View for editing
  3. Transfers to the detail view

Product-Spec

1. User Stories (Required and Optional)

Required Must-have Stories

Status

  • Display upcoming events
  • Scan flyers
  • Be able to view the camera
  • Be able to use OCR
  • Take the picture first and then process the information
  • Add the event to the user's calender app
  • Ask for alert preferences for the event
  • Be able to verify the event before adding it to the calender.

Optional Nice-to-have Stories

  • User Onboarding
  • Ability to invite other users to the scanned event
  • Setup default alert times i.e "At time of event"
  • Be able to edit the newly scanned event in case the parsing algorithm failed
  • Detail Event View for upcoming events

2. Screen Archetypes

  • Camera View
    • The user can take a picture of a flyer to be parsed by the app.
  • Image Confirmation View
    • The user is presented with the picture they captured using the camera view. If they feel that the image captured contains all the inofrmation that they wish to inlclude in their calendar event, else they may rescan it.
  • Upcoming Events Screen
    • It shows the user the closet events in their calendar that have been created using the app.
  • Event details screen
    • Once the information that event has been parsed, it is displayed to the user so they make some modifcations to the event if they wish to do so.

3. Navigation

Tab Navigation (Tab to Screen)

  • Camera View
    • The user uses the camera view to take a picture and create an event.
  • Upcoming Events
    • The upcoming events view is where the user would go to view their upcoming events.
  • Manually enter an event (optional)
    • This can be a view for the users to create events manually using the application via the event detail view.

Flow Navigation (Screen to Screen)

  • Camera View => Image Confirmation View => Events Detail View
  • Upcoming Events => Events Detail View

Wireframe


Video Walkthrough

Schema

Models

Event

Property Type Description
id String unique id for the image clicked
name String Event name
date Date Event date
location String Event location
description String Event description
alert preferences Array of Time alerts for upcoming events
invitees Array list of emails of the people the user wants to share the event with.
image Image The image used to create the event

Networking

List of network requests by screen

  • Camera View
    • No network calls made.
  • Image Confirmation View
    • (Write/POST) to ABBY to process the image using submit image/processImage
    • (READ/GET) download processed image from ABBY
    • (Write/POST) end all tasks related to parsing the image on ABBY.
  • Upcoming Events Screen
    • No network calls made.
  • Event details screen
    • No network calls made.

Video Walkthrough

Note, it may take a couple seconds for the gif to appear may take a couple seconds as the gif file is quite large.

Sprint 2

Video Walkthrough

Link for Camera Feature

Link for Detail View Feature

Sprint 3

Link for Detail View Feature

Final Sprint

Link for Final Replay Video

eventscan's People

Contributors

akaisani avatar hbobba avatar lee3072 avatar pratyaksh99 avatar

Watchers

James Cloos avatar

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.