Coder Social home page Coder Social logo

2800-202310-bby35's Introduction

IntelliPaws - BBY-35

Logo

Team Members

Name Role GitHub LinkedIn
Simrat Frontend Developer, Product Owner GitHub LinkedIn
Michelle Frontend Developer, QA Engineer GitHub LinkedIn
Aditya Lead Developer GitHub LinkedIn
Shawn Project Manager, AI Integration GitHub LinkedIn



Project Description

Our team is developing IntelliPaws which helps potential or current dog users with their dog, the app can reccomend a dog breed based on your lifestyle, provide training with exercises and it can help you learn more about your dog.

Technologies Used

Below are the technologies used in this project with their respective documentations, licenses and usage areas.

Technology Documentation License Usage
Next.js Next.js Docs MIT License Frontend, Server-side rendering
React.js React.js Docs MIT License User Interface (Frontend)
Prisma Prisma Docs Apache License, Version 2.0 Database Management (Backend)
TypeScript TypeScript Docs Apache License, Version 2.0 Typing, Codebase Structure
Node.js Node.js Docs MIT License Runtime Environment (Backend)
NextAuth.js NextAuth.js Docs MIT License Authentication (Backend)
Material-UI Material-UI Docs MIT License User Interface Design (Frontend)
Mantine Mantine Docs MIT License User Interface Design (Frontend)
OpenAI API OpenAI API Docs OpenAI API Terms AI Model Generation (Backend)
Prettier Prettier Docs MIT License Code Formatting
Vercel Vercel Docs MIT License Deployment and Hosting

How to install or run the project

  1. Clone the repository to your local machine
  2. Run npm install to install the project dependencies
  3. Create .env and .env.local files in your root directory, following the example provided in .env.example.
  4. Run npm run dev to start the local development server
  5. Install PostgreSQL database and set it up using the instructions found at PostgreSQL official page
  6. Prisma Client needs to be generated with npx prisma generate
  7. Seed the database using the script importCsvToPrisma.js located in dataset folder.
  8. You need to get an API key from OpenAI to use the GPT-3 model in this application. Add this key to your .env file.

How to use the product (Features)

  • Training: Users can access various dog training exercises and lessons, which are personalized based on their dog.
  • Chatbot: Users can chat with a chatbot to get personalized advice on anything dog related.
  • PlaceHolder: More features to be added in the future.

Use of AI

  1. Use of AI to help create application We used ChatGPT to help debug issues ( so many type script errors ), teach us about the technologies we were using (MUI, Mantine, Prisma, NextJS, ReactJS) and to help us with the project.
  2. Dataset: The data set we used had a 10/10 usaboility score, it was easy to use and it was easy to import into our database since we did not have to clean it.
  3. IntelliPaws ChatBot: GPT-3.5-turbo model is used to generate chat messages and respond to user queries in the application to assist users in dog related questions.
  4. Lesson / Exercise Generation: GPT-3.5-turbo model is used for generating personalized dog training lessons and exercises, as well as providing breed-specific recommendations.
  5. Dog Breed Reccomendation: GPT-3.5-turbo model is used to create a guided conversation with the user to determine the best dog breed for them.
  6. JSON Corrector: GPT-3.5-turbo model is used to correct the JSON format of the lesson or exercise response from the AI if, there is an error in the JSON format.
  7. Limitations: The ai may return incorrect JSON format, we fixed this by using a try catch block and making another prompt for the ai to correct the JSON format. The chatbot will also answer questions that are unrealted to what it is meant to talk about.

Listing of File Contents

│   .env
│   .env.example
│   .env.local
│   .eslintrc.json
│   .gitignore
│   next-env.d.ts
│   next.config.js
│   package.json
│   README.md
│   tsconfig.json
│   vercel.json
│
├───assets
│   └───images
│           chatbot.png
│           dog.gif
│           dog1.png
│           dog3.gif
│           doggy4.jpg
│           dogprofile.png
│           dogwithfriends.png
│           Logo.png
│           lostDog.png
│
├───components
│       AccordionLabel.tsx
│       AddDog.tsx
│       Alert.tsx
│       AuthWrapper.tsx
│       Chat.tsx
│       DailyTip.tsx
│       DogInformation.tsx
│       Exercise.tsx
│       Footer.tsx
│       JourneyStep.tsx
│       JourneyStepper.tsx
│       MountedWrapper.tsx
│       Navbar.tsx
│       Provider.tsx
│       RickRoll.tsx
│       StyledStepper.tsx
│
├───Constants
│       DogBehaviours.ts
│       EmptyDog.ts
│       EmptyDogBreed.ts
│       EmptyLesson.ts
│       index.ts
│       InitialContext.ts
│       InitialState.ts
│
├───Context
│       Context.tsx
│       Reducer.tsx
│       State.tsx
│
├───dataset
│       dog_breeds.csv
│       importCsvToPrisma.js
│
├───defer
│       generateTraining.ts
│
├───Hooks
│       useSmall.tsx
│
├───lib
│       fetchDogBreeds.ts
│       prisma.ts
│
├───models
│       IAlert.ts
│       IChatGPTMessage.ts
│       IContext.ts
│       IDog.ts
│       IDogBreed.ts
│       IExercise.ts
│       ILesson.ts
│       index.ts
│       IState.ts
│       IUser.ts
│
├───pages
│   │   404.tsx
│   │   dog.tsx
│   │   dogbreeds.tsx
│   │   homepage.tsx
│   │   index.tsx
│   │   oldhome.tsx
│   │   recommendation.tsx
│   │   training.tsx
│   │   user_profile.tsx
│   │   _app.tsx
│   │
│   ├───add_dog
│   │       adopted.tsx
│   │       health.tsx
│   │       index.tsx
│   │       training.tsx
│   │
│   ├───api
│   │   │   fetchdogbreeds.ts
│   │   │
│   │   ├───auth
│   │   │       [...nextauth].ts
│   │   │
│   │   ├───dog
│   │   │   │   add.ts
│   │   │   │   [ownerId].ts
│   │   │   │
│   │   │   └───lessons
│   │   │       │   [id].ts
│   │   │       │
│   │   │       └───lesson
│   │   │               [id].ts
│   │   │
│   │   ├───openai
│   │   │   │   generateChat.ts
│   │   │   │   generateExercises.ts
│   │   │   │   generateRecomendation.ts
│   │   │   │
│   │   │   └───generateLessons
│   │   │           index.ts
│   │   │           [dogId].ts
│   │   │
│   │   ├───user
│   │   │       [email].ts
│   │   │
│   │   └───vaccine
│   │           add.ts
│   │
│   ├───dog
│   │       [id].tsx
│   │
│   └───lessons
│       ├───lesson
│       │       [id].tsx
│       │
│       └───[id]
│               generate.tsx
│               index.tsx
│
├───prisma
│   │   schema.prisma
│   │
│   └───migrations
│       ├───20230511214237_dogbreedremoval
│       │       migration.sql
│       │
│       ├───20230511214415_restore
│       │       migration.sql
│       │
│       └───20230511214754_
│               migration.sql
│
├───public
│       favicon.ico
│
├───styles
│       globals.css
│       Homepage.module.css
│
└───Utils
        chatUtils.ts
        correctJSON.ts
        exerciseUtils.ts
        generateTraining.ts
        lessonUtils.ts
        openaiConfig.ts
        reccomendationUtils.ts

2800-202310-bby35's People

Contributors

agrawaladityaraj avatar michelle-0 avatar shawnbirring avatar simratkaur2 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.