Rafferty Leung edited this page May 2, 2023 · 64 revisions

SpotCheckAI - Pace University Capstone Project


Project Description

SpotCheckAI is a full-stack progressive web application (PWA) that can identify suspicious skin lesions as benign or cancerous. Users upload an image to the website and based on the Convolutional Neural Network Model, it will give a percentage of certainty that the model thinks is cancerous or benign.

SpotCheckAI's chatbot is powered by OpenAI's GPT-3 model and can answer questions regarding the results received or the website.

View Project Description PDF | Download Project Description as Word Document

View SpotCheckAI's Website


Contributors


Rafferty Leung
(rafferty.leung@pace.edu)
https://www.rafferty-leung.com/

Project Design

SpotCheckAI utilizes Ionic/React for it's frontend framework and Django for its backend. The backend features a one-time passcode (OTP) that can be utilized with any authenticator. The machine learning model is powered by Keras API and Tensorflow. The ChatBot is powered by leveraging OpenAI's API to develop embeddings.

Client Side

Server Side


Languages and Tools

Client Side

HTMLCSSJavascriptTypescriptReactIonicAxios

Server Side

PythonDjangoDjango REST FrameworkTensorFlowKerasNumPyMatplotlibPandasOpenCVPillowOpenAIGoogle AuthenticatorSQLite

Other Technologies Used

SeleniumPylintEslintGithubGitVisual Studio CodeGoogle ColabJiraPhotopeaFirebase


SpotCheckAI Final Application Artifacts

Final MVP Demo

Watch SpotCheckAI MVP Demo

Application Manuals

Installation Manual

View Installation Manual as PDF | Download Installation Manual as Word Document

User Guide

View User Guide as PDF | Download User Guide as Word Document

API Documentation

View API Documentation as PDF | Download API Documentation as Word Document

SpotCheckAI Technical Paper

View Technical Paper as PDF | Download Technical Paper as Word Document


CS691/CS692 - Spring 2023 Deliverables

Presentations (Sprint Reviews)

  1. Watch Deliverable 1 Presentation Video
    1a. View Deliverable 1 Presentation Slides as PDF
    1b. Download Deliverable 1 Presentation Slides as PowerPoint
    1c. Watch MVP Demo

  2. Watch Deliverable 2 Presentation Video
    1a. View Deliverable 2 Presentation Slides as PDF
    1b. Download Deliverable 2 Presentation Slides as PowerPoint
    1c. Watch MVP Demo

Sprint Burndown Charts and Completed Tasks

Sprint 1 Burndown Charts | Sprint 1 Completed Tasks
Sprint 2 Burndown Charts | Sprint 2 Completed Tasks

Team Working Agreement

Team Working Agreement as PDF | Download Team Working Agreement as Word Document


Architecture Diagram

Conceptual Architecture Diagram | Sequence Diagram | Use Case Diagram | Class Diagram | Process Flow Diagram


Additional Project Artifacts

Product Personas

Persona 1
Persona 2
Persona 3

User Stories

View User Stories Spreadsheet as PDF | Download User Stories as Excel Workbook

Acceptance Criteria

View Acceptance Criteria as PDF | Download Acceptance Criteria as Excel Workbook

Application Test Cases

View Test Cases PDF | Download Test Cases as Excel Workbook

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Rafferty Leung edited this page May 2, 2023 · 64 revisions

SpotCheckAI - Pace University Capstone Project


Project Description

SpotCheckAI is a full-stack progressive web application (PWA) that can identify suspicious skin lesions as benign or cancerous. Users upload an image to the website and based on the Convolutional Neural Network Model, it will give a percentage of certainty that the model thinks is cancerous or benign.

SpotCheckAI's chatbot is powered by OpenAI's GPT-3 model and can answer questions regarding the results received or the website.

View Project Description PDF | Download Project Description as Word Document

View SpotCheckAI's Website


Contributors


Rafferty Leung
(rafferty.leung@pace.edu)
https://www.rafferty-leung.com/

Project Design

SpotCheckAI utilizes Ionic/React for it's frontend framework and Django for its backend. The backend features a one-time passcode (OTP) that can be utilized with any authenticator. The machine learning model is powered by Keras API and Tensorflow. The ChatBot is powered by leveraging OpenAI's API to develop embeddings.

Client Side

Server Side


Languages and Tools

Client Side

HTMLCSSJavascriptTypescriptReactIonicAxios

Server Side

PythonDjangoDjango REST FrameworkTensorFlowKerasNumPyMatplotlibPandasOpenCVPillowOpenAIGoogle AuthenticatorSQLite

Other Technologies Used

SeleniumPylintEslintGithubGitVisual Studio CodeGoogle ColabJiraPhotopeaFirebase


SpotCheckAI Final Application Artifacts

Final MVP Demo

Watch SpotCheckAI MVP Demo

Application Manuals

Installation Manual

View Installation Manual as PDF | Download Installation Manual as Word Document

User Guide

View User Guide as PDF | Download User Guide as Word Document

API Documentation

View API Documentation as PDF | Download API Documentation as Word Document

SpotCheckAI Technical Paper

View Technical Paper as PDF | Download Technical Paper as Word Document


CS691/CS692 - Spring 2023 Deliverables

Presentations (Sprint Reviews)

  1. Watch Deliverable 1 Presentation Video
    1a. View Deliverable 1 Presentation Slides as PDF
    1b. Download Deliverable 1 Presentation Slides as PowerPoint
    1c. Watch MVP Demo

  2. Watch Deliverable 2 Presentation Video
    1a. View Deliverable 2 Presentation Slides as PDF
    1b. Download Deliverable 2 Presentation Slides as PowerPoint
    1c. Watch MVP Demo

Sprint Burndown Charts and Completed Tasks

Sprint 1 Burndown Charts | Sprint 1 Completed Tasks
Sprint 2 Burndown Charts | Sprint 2 Completed Tasks

Team Working Agreement

Team Working Agreement as PDF | Download Team Working Agreement as Word Document


Architecture Diagram

Conceptual Architecture Diagram | Sequence Diagram | Use Case Diagram | Class Diagram | Process Flow Diagram


Additional Project Artifacts

Product Personas

Persona 1
Persona 2
Persona 3

User Stories

View User Stories Spreadsheet as PDF | Download User Stories as Excel Workbook

Acceptance Criteria

View Acceptance Criteria as PDF | Download Acceptance Criteria as Excel Workbook

Application Test Cases

View Test Cases PDF | Download Test Cases as Excel Workbook

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Rafferty Leung edited this page May 2, 2023 · 64 revisions

SpotCheckAI - Pace University Capstone Project


Project Description

SpotCheckAI is a full-stack progressive web application (PWA) that can identify suspicious skin lesions as benign or cancerous. Users upload an image to the website and based on the Convolutional Neural Network Model, it will give a percentage of certainty that the model thinks is cancerous or benign.

SpotCheckAI's chatbot is powered by OpenAI's GPT-3 model and can answer questions regarding the results received or the website.

View Project Description PDF | Download Project Description as Word Document

View SpotCheckAI's Website


Contributors


Rafferty Leung
(rafferty.leung@pace.edu)
https://www.rafferty-leung.com/

Project Design

SpotCheckAI utilizes Ionic/React for it's frontend framework and Django for its backend. The backend features a one-time passcode (OTP) that can be utilized with any authenticator. The machine learning model is powered by Keras API and Tensorflow. The ChatBot is powered by leveraging OpenAI's API to develop embeddings.

Client Side

Server Side


Languages and Tools

Client Side

HTMLCSSJavascriptTypescriptReactIonicAxios

Server Side

PythonDjangoDjango REST FrameworkTensorFlowKerasNumPyMatplotlibPandasOpenCVPillowOpenAIGoogle AuthenticatorSQLite

Other Technologies Used

SeleniumPylintEslintGithubGitVisual Studio CodeGoogle ColabJiraPhotopeaFirebase


SpotCheckAI Final Application Artifacts

Final MVP Demo

Watch SpotCheckAI MVP Demo

Application Manuals

Installation Manual

View Installation Manual as PDF | Download Installation Manual as Word Document

User Guide

View User Guide as PDF | Download User Guide as Word Document

API Documentation

View API Documentation as PDF | Download API Documentation as Word Document

SpotCheckAI Technical Paper

View Technical Paper as PDF | Download Technical Paper as Word Document


CS691/CS692 - Spring 2023 Deliverables

Presentations (Sprint Reviews)

  1. Watch Deliverable 1 Presentation Video
    1a. View Deliverable 1 Presentation Slides as PDF
    1b. Download Deliverable 1 Presentation Slides as PowerPoint
    1c. Watch MVP Demo

  2. Watch Deliverable 2 Presentation Video
    1a. View Deliverable 2 Presentation Slides as PDF
    1b. Download Deliverable 2 Presentation Slides as PowerPoint
    1c. Watch MVP Demo

Sprint Burndown Charts and Completed Tasks

Sprint 1 Burndown Charts | Sprint 1 Completed Tasks
Sprint 2 Burndown Charts | Sprint 2 Completed Tasks

Team Working Agreement

Team Working Agreement as PDF | Download Team Working Agreement as Word Document


Architecture Diagram

Conceptual Architecture Diagram | Sequence Diagram | Use Case Diagram | Class Diagram | Process Flow Diagram


Additional Project Artifacts

Product Personas

Persona 1
Persona 2
Persona 3

User Stories

View User Stories Spreadsheet as PDF | Download User Stories as Excel Workbook

Acceptance Criteria

View Acceptance Criteria as PDF | Download Acceptance Criteria as Excel Workbook

Application Test Cases

View Test Cases PDF | Download Test Cases as Excel Workbook

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Rafferty Leung edited this page May 2, 2023 · 64 revisions

SpotCheckAI - Pace University Capstone Project


Project Description

SpotCheckAI is a full-stack progressive web application (PWA) that can identify suspicious skin lesions as benign or cancerous. Users upload an image to the website and based on the Convolutional Neural Network Model, it will give a percentage of certainty that the model thinks is cancerous or benign.

SpotCheckAI's chatbot is powered by OpenAI's GPT-3 model and can answer questions regarding the results received or the website.

View Project Description PDF | Download Project Description as Word Document

View SpotCheckAI's Website


Contributors


Rafferty Leung
(rafferty.leung@pace.edu)
https://www.rafferty-leung.com/

Project Design

SpotCheckAI utilizes Ionic/React for it's frontend framework and Django for its backend. The backend features a one-time passcode (OTP) that can be utilized with any authenticator. The machine learning model is powered by Keras API and Tensorflow. The ChatBot is powered by leveraging OpenAI's API to develop embeddings.

Client Side

Server Side


Languages and Tools

Client Side

HTMLCSSJavascriptTypescriptReactIonicAxios

Server Side

PythonDjangoDjango REST FrameworkTensorFlowKerasNumPyMatplotlibPandasOpenCVPillowOpenAIGoogle AuthenticatorSQLite

Other Technologies Used

SeleniumPylintEslintGithubGitVisual Studio CodeGoogle ColabJiraPhotopeaFirebase


SpotCheckAI Final Application Artifacts

Final MVP Demo

Watch SpotCheckAI MVP Demo

Application Manuals

Installation Manual

View Installation Manual as PDF | Download Installation Manual as Word Document

User Guide

View User Guide as PDF | Download User Guide as Word Document

API Documentation

View API Documentation as PDF | Download API Documentation as Word Document

SpotCheckAI Technical Paper

View Technical Paper as PDF | Download Technical Paper as Word Document


CS691/CS692 - Spring 2023 Deliverables

Presentations (Sprint Reviews)

  1. Watch Deliverable 1 Presentation Video
    1a. View Deliverable 1 Presentation Slides as PDF
    1b. Download Deliverable 1 Presentation Slides as PowerPoint
    1c. Watch MVP Demo

  2. Watch Deliverable 2 Presentation Video
    1a. View Deliverable 2 Presentation Slides as PDF
    1b. Download Deliverable 2 Presentation Slides as PowerPoint
    1c. Watch MVP Demo

Sprint Burndown Charts and Completed Tasks

Sprint 1 Burndown Charts | Sprint 1 Completed Tasks
Sprint 2 Burndown Charts | Sprint 2 Completed Tasks

Team Working Agreement

Team Working Agreement as PDF | Download Team Working Agreement as Word Document


Architecture Diagram

Conceptual Architecture Diagram | Sequence Diagram | Use Case Diagram | Class Diagram | Process Flow Diagram


Additional Project Artifacts

Product Personas

Persona 1
Persona 2
Persona 3

User Stories

View User Stories Spreadsheet as PDF | Download User Stories as Excel Workbook

Acceptance Criteria

View Acceptance Criteria as PDF | Download Acceptance Criteria as Excel Workbook

Application Test Cases

View Test Cases PDF | Download Test Cases as Excel Workbook

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Rafferty Leung edited this page May 2, 2023 · 64 revisions

SpotCheckAI - Pace University Capstone Project


Project Description

SpotCheckAI is a full-stack progressive web application (PWA) that can identify suspicious skin lesions as benign or cancerous. Users upload an image to the website and based on the Convolutional Neural Network Model, it will give a percentage of certainty that the model thinks is cancerous or benign.

SpotCheckAI's chatbot is powered by OpenAI's GPT-3 model and can answer questions regarding the results received or the website.

View Project Description PDF | Download Project Description as Word Document

View SpotCheckAI's Website


Contributors


Rafferty Leung
(rafferty.leung@pace.edu)
https://www.rafferty-leung.com/

Project Design

SpotCheckAI utilizes Ionic/React for it's frontend framework and Django for its backend. The backend features a one-time passcode (OTP) that can be utilized with any authenticator. The machine learning model is powered by Keras API and Tensorflow. The ChatBot is powered by leveraging OpenAI's API to develop embeddings.

Client Side

Server Side


Languages and Tools

Client Side

HTMLCSSJavascriptTypescriptReactIonicAxios

Server Side

PythonDjangoDjango REST FrameworkTensorFlowKerasNumPyMatplotlibPandasOpenCVPillowOpenAIGoogle AuthenticatorSQLite

Other Technologies Used

SeleniumPylintEslintGithubGitVisual Studio CodeGoogle ColabJiraPhotopeaFirebase


SpotCheckAI Final Application Artifacts

Final MVP Demo

Watch SpotCheckAI MVP Demo

Application Manuals

Installation Manual

View Installation Manual as PDF | Download Installation Manual as Word Document

User Guide

View User Guide as PDF | Download User Guide as Word Document

API Documentation

View API Documentation as PDF | Download API Documentation as Word Document

SpotCheckAI Technical Paper

View Technical Paper as PDF | Download Technical Paper as Word Document


CS691/CS692 - Spring 2023 Deliverables

Presentations (Sprint Reviews)

  1. Watch Deliverable 1 Presentation Video
    1a. View Deliverable 1 Presentation Slides as PDF
    1b. Download Deliverable 1 Presentation Slides as PowerPoint
    1c. Watch MVP Demo

  2. Watch Deliverable 2 Presentation Video
    1a. View Deliverable 2 Presentation Slides as PDF
    1b. Download Deliverable 2 Presentation Slides as PowerPoint
    1c. Watch MVP Demo

Sprint Burndown Charts and Completed Tasks

Sprint 1 Burndown Charts | Sprint 1 Completed Tasks
Sprint 2 Burndown Charts | Sprint 2 Completed Tasks

Team Working Agreement

Team Working Agreement as PDF | Download Team Working Agreement as Word Document


Architecture Diagram

Conceptual Architecture Diagram | Sequence Diagram | Use Case Diagram | Class Diagram | Process Flow Diagram


Additional Project Artifacts

Product Personas

Persona 1
Persona 2
Persona 3

User Stories

View User Stories Spreadsheet as PDF | Download User Stories as Excel Workbook

Acceptance Criteria

View Acceptance Criteria as PDF | Download Acceptance Criteria as Excel Workbook

Application Test Cases

View Test Cases PDF | Download Test Cases as Excel Workbook

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Rafferty Leung edited this page May 2, 2023 · 64 revisions

SpotCheckAI - Pace University Capstone Project


Project Description

SpotCheckAI is a full-stack progressive web application (PWA) that can identify suspicious skin lesions as benign or cancerous. Users upload an image to the website and based on the Convolutional Neural Network Model, it will give a percentage of certainty that the model thinks is cancerous or benign.

SpotCheckAI's chatbot is powered by OpenAI's GPT-3 model and can answer questions regarding the results received or the website.

View Project Description PDF | Download Project Description as Word Document

View SpotCheckAI's Website


Contributors


Rafferty Leung
(rafferty.leung@pace.edu)
https://www.rafferty-leung.com/

Project Design

SpotCheckAI utilizes Ionic/React for it's frontend framework and Django for its backend. The backend features a one-time passcode (OTP) that can be utilized with any authenticator. The machine learning model is powered by Keras API and Tensorflow. The ChatBot is powered by leveraging OpenAI's API to develop embeddings.

Client Side

Server Side


Languages and Tools

Client Side

HTMLCSSJavascriptTypescriptReactIonicAxios

Server Side

PythonDjangoDjango REST FrameworkTensorFlowKerasNumPyMatplotlibPandasOpenCVPillowOpenAIGoogle AuthenticatorSQLite

Other Technologies Used

SeleniumPylintEslintGithubGitVisual Studio CodeGoogle ColabJiraPhotopeaFirebase


SpotCheckAI Final Application Artifacts

Final MVP Demo

Watch SpotCheckAI MVP Demo

Application Manuals

Installation Manual

View Installation Manual as PDF | Download Installation Manual as Word Document

User Guide

View User Guide as PDF | Download User Guide as Word Document

API Documentation

View API Documentation as PDF | Download API Documentation as Word Document

SpotCheckAI Technical Paper

View Technical Paper as PDF | Download Technical Paper as Word Document


CS691/CS692 - Spring 2023 Deliverables

Presentations (Sprint Reviews)

  1. Watch Deliverable 1 Presentation Video
    1a. View Deliverable 1 Presentation Slides as PDF
    1b. Download Deliverable 1 Presentation Slides as PowerPoint
    1c. Watch MVP Demo

  2. Watch Deliverable 2 Presentation Video
    1a. View Deliverable 2 Presentation Slides as PDF
    1b. Download Deliverable 2 Presentation Slides as PowerPoint
    1c. Watch MVP Demo

Sprint Burndown Charts and Completed Tasks

Sprint 1 Burndown Charts | Sprint 1 Completed Tasks
Sprint 2 Burndown Charts | Sprint 2 Completed Tasks

Team Working Agreement

Team Working Agreement as PDF | Download Team Working Agreement as Word Document


Architecture Diagram

Conceptual Architecture Diagram | Sequence Diagram | Use Case Diagram | Class Diagram | Process Flow Diagram


Additional Project Artifacts

Product Personas

Persona 1
Persona 2
Persona 3

User Stories

View User Stories Spreadsheet as PDF | Download User Stories as Excel Workbook

Acceptance Criteria

View Acceptance Criteria as PDF | Download Acceptance Criteria as Excel Workbook

Application Test Cases

View Test Cases PDF | Download Test Cases as Excel Workbook

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Rafferty Leung edited this page May 2, 2023 · 64 revisions

SpotCheckAI - Pace University Capstone Project


Project Description

SpotCheckAI is a full-stack progressive web application (PWA) that can identify suspicious skin lesions as benign or cancerous. Users upload an image to the website and based on the Convolutional Neural Network Model, it will give a percentage of certainty that the model thinks is cancerous or benign.

SpotCheckAI's chatbot is powered by OpenAI's GPT-3 model and can answer questions regarding the results received or the website.

View Project Description PDF | Download Project Description as Word Document

View SpotCheckAI's Website


Contributors


Rafferty Leung
(rafferty.leung@pace.edu)
https://www.rafferty-leung.com/

Project Design

SpotCheckAI utilizes Ionic/React for it's frontend framework and Django for its backend. The backend features a one-time passcode (OTP) that can be utilized with any authenticator. The machine learning model is powered by Keras API and Tensorflow. The ChatBot is powered by leveraging OpenAI's API to develop embeddings.

Client Side

Server Side


Languages and Tools

Client Side

HTMLCSSJavascriptTypescriptReactIonicAxios

Server Side

PythonDjangoDjango REST FrameworkTensorFlowKerasNumPyMatplotlibPandasOpenCVPillowOpenAIGoogle AuthenticatorSQLite

Other Technologies Used

SeleniumPylintEslintGithubGitVisual Studio CodeGoogle ColabJiraPhotopeaFirebase


SpotCheckAI Final Application Artifacts

Final MVP Demo

Watch SpotCheckAI MVP Demo

Application Manuals

Installation Manual

View Installation Manual as PDF | Download Installation Manual as Word Document

User Guide

View User Guide as PDF | Download User Guide as Word Document

API Documentation

View API Documentation as PDF | Download API Documentation as Word Document

SpotCheckAI Technical Paper

View Technical Paper as PDF | Download Technical Paper as Word Document


CS691/CS692 - Spring 2023 Deliverables

Presentations (Sprint Reviews)

  1. Watch Deliverable 1 Presentation Video
    1a. View Deliverable 1 Presentation Slides as PDF
    1b. Download Deliverable 1 Presentation Slides as PowerPoint
    1c. Watch MVP Demo

  2. Watch Deliverable 2 Presentation Video
    1a. View Deliverable 2 Presentation Slides as PDF
    1b. Download Deliverable 2 Presentation Slides as PowerPoint
    1c. Watch MVP Demo

Sprint Burndown Charts and Completed Tasks

Sprint 1 Burndown Charts | Sprint 1 Completed Tasks
Sprint 2 Burndown Charts | Sprint 2 Completed Tasks

Team Working Agreement

Team Working Agreement as PDF | Download Team Working Agreement as Word Document


Architecture Diagram

Conceptual Architecture Diagram | Sequence Diagram | Use Case Diagram | Class Diagram | Process Flow Diagram


Additional Project Artifacts

Product Personas

Persona 1
Persona 2
Persona 3

User Stories

View User Stories Spreadsheet as PDF | Download User Stories as Excel Workbook

Acceptance Criteria

View Acceptance Criteria as PDF | Download Acceptance Criteria as Excel Workbook

Application Test Cases

View Test Cases PDF | Download Test Cases as Excel Workbook

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Rafferty Leung edited this page May 2, 2023 · 64 revisions

SpotCheckAI - Pace University Capstone Project


Project Description

SpotCheckAI is a full-stack progressive web application (PWA) that can identify suspicious skin lesions as benign or cancerous. Users upload an image to the website and based on the Convolutional Neural Network Model, it will give a percentage of certainty that the model thinks is cancerous or benign.

SpotCheckAI's chatbot is powered by OpenAI's GPT-3 model and can answer questions regarding the results received or the website.

View Project Description PDF | Download Project Description as Word Document

View SpotCheckAI's Website


Contributors


Rafferty Leung
(rafferty.leung@pace.edu)
https://www.rafferty-leung.com/

Project Design

SpotCheckAI utilizes Ionic/React for it's frontend framework and Django for its backend. The backend features a one-time passcode (OTP) that can be utilized with any authenticator. The machine learning model is powered by Keras API and Tensorflow. The ChatBot is powered by leveraging OpenAI's API to develop embeddings.

Client Side

Server Side


Languages and Tools

Client Side

HTMLCSSJavascriptTypescriptReactIonicAxios

Server Side

PythonDjangoDjango REST FrameworkTensorFlowKerasNumPyMatplotlibPandasOpenCVPillowOpenAIGoogle AuthenticatorSQLite

Other Technologies Used

SeleniumPylintEslintGithubGitVisual Studio CodeGoogle ColabJiraPhotopeaFirebase


SpotCheckAI Final Application Artifacts

Final MVP Demo

Watch SpotCheckAI MVP Demo

Application Manuals

Installation Manual

View Installation Manual as PDF | Download Installation Manual as Word Document

User Guide

View User Guide as PDF | Download User Guide as Word Document

API Documentation

View API Documentation as PDF | Download API Documentation as Word Document

SpotCheckAI Technical Paper

View Technical Paper as PDF | Download Technical Paper as Word Document


CS691/CS692 - Spring 2023 Deliverables

Presentations (Sprint Reviews)

  1. Watch Deliverable 1 Presentation Video
    1a. View Deliverable 1 Presentation Slides as PDF
    1b. Download Deliverable 1 Presentation Slides as PowerPoint
    1c. Watch MVP Demo

  2. Watch Deliverable 2 Presentation Video
    1a. View Deliverable 2 Presentation Slides as PDF
    1b. Download Deliverable 2 Presentation Slides as PowerPoint
    1c. Watch MVP Demo

Sprint Burndown Charts and Completed Tasks

Sprint 1 Burndown Charts | Sprint 1 Completed Tasks
Sprint 2 Burndown Charts | Sprint 2 Completed Tasks

Team Working Agreement

Team Working Agreement as PDF | Download Team Working Agreement as Word Document


Architecture Diagram

Conceptual Architecture Diagram | Sequence Diagram | Use Case Diagram | Class Diagram | Process Flow Diagram


Additional Project Artifacts

Product Personas

Persona 1
Persona 2
Persona 3

User Stories

View User Stories Spreadsheet as PDF | Download User Stories as Excel Workbook

Acceptance Criteria

View Acceptance Criteria as PDF | Download Acceptance Criteria as Excel Workbook

Application Test Cases

View Test Cases PDF | Download Test Cases as Excel Workbook