Giter VIP home page Giter VIP logo

tbd-hackathon-2024's Introduction

Welcome to my GitHub!

Hi, my name is Sonny.

I am a highly skilled and motiviated software professional with seven years of experience in designing, developing and maintaining robust software applications.

My experience includes starting projects at start ups, contributing to large scale projects for fortune 50 companies, as well as contrubuting to existing code bases in the open source community.

Learn about my experiences on my resume here ๐Ÿ“„

I take pride in my track record of delivering high-quality software solutions as an employee and in my freelance work. I am also a quick learner and have experience with a range of technologies, including Python, JavaScript, Swift, Vue.js, React.js, GCP, Azure and Amazon Web Services.

Some of the technologies I look forward to growing my skillset in this year are:

  • AWS CDK
  • Supabase
  • WebContainers
  • Svelte 5
  • Open Source AI/ML Models
  • Google Cloud Platform

tbd-hackathon-2024's People

Contributors

bertybot avatar sonnyfishback avatar systemdz avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

tbd-hackathon-2024's Issues

A user can submit a form to generate an interview using Open AI API

Start an Interview

API first:

Create the API route and +page.server.ts file.

  • Install Open AI API

  • Configure environment variable

  • Import SDK

  • Call to GPT to generate a JSON list of questions that contain the question and an accurate answer to that question. The goal is to 1. Generate a list of questions and 2. Generate a list of answers to each question that when we ask GPT to compare the question and answer then it will be able to accurately determine if the questions "wrongness or rightness level".

Depending on if the user opts into multiple choice or not we will need to be able to generate not only one question but three for each. One question will be the AI generated "right answer" and the other two will be "wrong".

The form action should:

  • Accept FormData stuff as parameters
  • Data passed into the FormData should include:
  1. Job description
  2. Challenge level
  3. Keywords
  4. Years of experience

Should execute the following logic/functionality:

IF (user wants text to speech functionality in interview)

Loops through questions and generate MP3 audio files from AWS Polly via AWS Polly SDK. You can create a shell function and return a hard coded mp3 audio file.

END IF:

Loops through questions and answers and stores them both in DB using Prisma ORM.

RETURNS:

  • Interview: id, all questions, all answers, mp3 files in necessary.

Page Route next:

Create the +page.svelte

Create a form that uses the use:action attribute and submits to the form action in the +page.server.ts file

Implement Landing Page

Acceptance Criteria:

The landing page will consist of the following UI components:

Product Logo

Navigation Bar

  • Home
  • Account
  • Dashboard

Hero Section:

Headline: Conquer your next interview with AI-powered preparation.

Form

  • The form will allow users effortlessly start the interview process weather they are
  • creating an interview for themselves or as a recruiter.
  • The form will use the Shadcn-Svelte Tab Component.
  • This tab component will be used to allow the user to toggle between the form tailored for the interviewee and the form tailored for the recruiter.
  • The form will have a clickable component that starts an instant interview using random questinos. (Think google's "I'm feeling lucky feature").
  • Users will be able to select keywords to tailor the interview further. Selecting keywords like Javascript, React, System Design, AWS .etc using the Shadcn-Svelte Toggle Component.

    Benefits Section:
  • Highlight key features like:
  • Practice with real-time AI feedback
  • Personalized interview question selection
  • Improve your communication skills
  • Build confidence and reduce interview anxiety

How it Works Section:

  • Explain the platform's functionalities in a step-by-step manner with visuals.
  • Use clear and concise language.

Stretch Goals:

[Stretch] A user has a gamified experience throughout interview/interviewer journey

Animation and badge when you create your first interview
Animation when you invite someone to partake in an interview you created
Animation and badge when you complete an interview

Progress bar while interview is in progress

Green animation when providing the right answer
Red animation when providing the wrong answer
Yellow animation when answer is not quite right but close

A user can interface with interview LLM using only questions as audio and answers using voice

Acceptance Criteria:

A user can interact with a clickable UI component that does the following:

  • On click, start listening. Prompt the user with a confirmation (I think this is required now to get it to work).
  • Record the audio until timeout or the user clicks the UI component again.

Once the user submits their recording as an answer then execute the following logic:

  • Convert/Create audio data in a format that can interface with AWS Transcribe. Transcribe is a cloud service for Speech to Text.
  • Store that generated audio transcription into a format that can be forwarded to Open AI API.
  • Store the interview question and answer pair in the database. See ERD to determine the schema if Prisma types is not sufficient.

The request take the question being answered and the recorded answer and return a "rightness score". How this score is calculated could be as simple as prompting the model with "score this answer in regards to this specific question and return a JSON object with the level of rightness. Rightness will be on a scale of 0 - 100 or 0 -1.

Pseudo code:

import AI from 'ai';
import Polly from 'aws/polly';
import Transcribe from 'aws/transcribe';

const record = () => return true; // this will start recording audio from the user after permission prompt.


while (user wants to record) {
 // keep recording
 const file = record(true)
// create auido file to send to AWS Transcribe
 const data = convert(data)
}

if (user wants to submit recording) {
 record(false)
 // Transcribe audio data
// Get and  return text from speech
const text = Transcribe(data)
// Then store the interview question in the database for future reference
Prisma.interview.update( { text, ...data) } )
}

Implement Authentication

As a user I want to be able to authenticate on the platform using:

  • Pasword-less authentication w/ Supabase Magic Email
  • Linkedin SSO
  • Google SSO
  • Email and Password (Stretch goal)

You can follow this documentation to get started.

Acceptance Criteria:

  • A user will be able to register via methods listed above. Only one is required for MPV however, the rest should be technically feasible and attainable within a reasonable amount time.

Architect Database | Supabase w/ Prisma

We need our database designed and ready for development for the hackathon.

Acceptance Criteria:

  1. Implement Supabase databse w/ Prisma integration.
  2. Create ERD diagram.
  3. Create Prisma Schema.
  4. Run migration to create and seed database.
  5. Query the database to prove it is working as expected.

Implement API Route to Analyze an interview submission for scoring

A user can analyze each interview submission by ID and receive an analysis object that ranks/scores the interview submission

Acceptance Criteria:

API Route first:

The API Route should:

Accepte an interview id as a parameter in FormData.

Get that interview submission and related data like interview using Prisma ORM

DOES SOME AI MAGIC

In Prisma create an InterveiwAnalysis object. (Check ERD or Prisma Schema for this)

Returns InterviewAnalysis object.

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.