Giter Site home page Giter Site logo

cathelijnevisser / ctc-a-chatbot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fdnd-task/pleasurable-ui

1.0 0.0 1.0 1.07 MB

Ontwerp en maak voor een opdrachtgever een realtime omgeving waar gebruikers kunnen samenwerken.

Home Page: https://ctc-a.adaptable.app/

License: MIT License

JavaScript 25.00% CSS 33.20% EJS 41.81%

ctc-a-chatbot's Introduction

Coding the Curbs website

Een website om een smartzone te zoeken en boeken en vragen te stellen.

Inhoudsopgave

๐Ÿ“„ Beschrijving

Deze pagina is gemaakt voor de volgende userstory's:

  • "Als vervoerder wil ik een overzicht van smartzones in een stad kunnen bekijken, zodat ik kan zien waar ik kan parkeren om mijn goederen te laden/lossen"
  • "Als vervoerder wil ik onderweg vanuit mijn voertuig meer informatie over een smartzone kunnen bekijken, zodat ik kan zien of de zone geschikt is om mijn goederen te laden en/of lossen"
  • "Als vervoerder wil een smart zone kunnen reserveren, zodat ik mijn plek kan bevestigen"
  • "Als gebruiker wil ik een vraag kunnen stellen, zodat ik hulp kan krijgen"

De eerste pagina is een overzichtspagina met de verschillende smartzones, die ook hun eigen detailslide hebben. Verder is een kaart te zien met de locaties van de zones. De tweede pagina is een pagina waar een reserveerformulier staat waar je de gewenste smartzone kunt boeken en je gegevens invult.

Desktop search pagina
Desktop book pagina

De website vind je hier.

๐Ÿ’ป Gebruik

Deze website bestaat uit meerdere delen. Aan de linkerkant staat een overzicht van alle smartzones. Aan de rechterkant staat de kaart of het formulier om te kunnen reserveren.

Elke smartzone heeft een eigen tegel en ziet er als volgt uit:

Er is meer informatie beschikbaar per smartzone als je op het i-icoontje klikt:

Het logo en de navigatiebar blijven in beeld staan als je scrollt:

De navigatiebar bevat de volgende pagina's:

De kaart heeft markers die gelinkt zijn aan de zones en ziet er als volgt uit:

Het formulier om te reserveren bevat de volgende velden:

Er zijn drie manieren om met het formulier te beginnen:

  1. Op de 'Book' knop uit de navigatie klikken. Het formulier begint dan helemaal leeg.
  2. Op de 'Book now' knop van een smartzone klikken. In het formulier worden al de smartzone en de start datum ingevuld.
  3. Op de 'Book later' knop van een smartzone klikken. In het formulier wordt al de smartzone ingevuld.

Op elke pagina is een chatbot te vinden om vragen te stellen:

๐Ÿ“Œ Kenmerken

Voor dit project heb we met node.js, express en ejs gewerkt. Daarnaast is er ook gebruik gemaakt van de JavaScript library Leaflet en maptiler.

HTML is ondergebracht in partials die door middel van EJS aan een grotere pagina vastzitten.

Met behulp van CSS zijn er SVG's geanimeerd met keyframes.

In JavaScript hebben we een invalid statement voor het formulier gemaakt. Hierdoor kijkt het formulier pas als je op de submit knop hebt gedruk of alles is ingevuld.

Met NODE hebben we de pagina's een route gegeven waardoor ze de informatie uit de API krijgen en informatie naar de API kunnen sturen.

Door EJS kunnen we JavaScript in de HTML gebruiken. Hierdoor kunnnen we in het formulier kijken naar welke datum vandaag is en ervoor zorgen dat er geen datum in het verleden geselecteerd kan worden.

Voor de kaart hebben we Leaflet gebruikt. Hiermee kunnen we makkelijk een kaart maken met markers die klikbaar zijn.

De chat is gemaakt met socket.io en chat-gpt. Hierdoor kun je een vraag stellen waar automatisch antwoord op wordt gegeven.

โš™๏ธ Installatie

Om (verder) te kunnen werken aan dit project, moet je de volgende stappen volgen:

  1. Instaleer node versie 18.15.0
  2. Clone deze repository
  3. Open de terminal (CTRL + `)
  4. Type 'npm install express ejs dotenv openai socket.io'
  5. Je ziet nu de node_modules map
  6. Maak een .env bestand met beide variable die in de example.env staan
  7. Type in terminal 'npm start'
  8. Klik link localhost

Let op, er is gebruik gemaakt van een .env bestand.

๐Ÿ“ Bronnen

๐Ÿ”’ Licentie

This project is licensed under the terms of the MIT license.

ctc-a-chatbot's People

Contributors

cathelijnevisser avatar celinexputte avatar joostf avatar ju5tu5 avatar

Stargazers

 avatar

Forkers

celinexputte

ctc-a-chatbot's Issues

Focus op chatbot

Zodra je de chatbot opent, gaat niet de focus van het toetsenbord daar meteen heen. Nog uitzoeken hoe dit moet.

Chat-gpt specificeren

Zorgen dat de AI weet over welk onderwerp hij moet praten door vooraf ingestelde woorden/antwoorden mee te geven.

Readme schrijven

  • Beschrijving (Celine)
  • Gebruik (Celine)
  • Kenmerken (Cathelijne)
  • Installatie (Cathelijne)
  • Bronnen

Comments

Graag comments toevoegen in de chat (en openIA) code.

CTC-A-chatbot/server.js

Lines 100 to 130 in 12f3b13

//Chatbot
let conversationHistory = []
const historySize = 20
ioServer.on('connection', (client) => {
console.log(`user ${client.id} connected`)
client.emit('history', conversationHistory)
client.on('message', async (message, callback) => {
try {
while (conversationHistory.length > historySize) {
conversationHistory.shift()
}
conversationHistory.push({ role: "user", content: message })
const completion = await openai.createChatCompletion({
model: "gpt-4",
prompt: "hello world",
})
const response = completion.data.choices[0].message.content;
conversationHistory.push({ role: "assistant", content: response })
ioServer.emit('message', response)
callback()
} catch (error) {
callback("Error: Unable to connect to the chatbot");
}
})
client.on('disconnect', () => {
console.log(`user ${client.id} disconnected`)
})
})

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.