Skip to content

Latest commit

Β 

History

68 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🦾 HeyDEAN - Digital Execution, Assisting Nicely

DEAN er en personlig assistent bygget med React + TypeScript pΓ₯ frontend og ASP.NET Core Web API pΓ₯ backend.
Assistenten bruger speech recognition, JWT-auth, og kan vise Notes, Tasks og Events, genereret ud fra dine voice-commands.


πŸš€ Features

πŸ—£οΈ Voice Interaction

  • Brug browser mikrofonen til at tale med DEAN. (Kun Google Chrome pt.)
  • Automatisk transskription via browserens SpeechRecognition API.
  • DEAN tager prompts og svarer med:
    • Tekstbeskeder eller lister (Notes, Tasks, Events)

πŸ’¬ Chat med DEAN

  • Bruger og DEAN har en samtale i form a chatbubbles.

πŸ“ Data HΓ₯ndtering

DEAN henter data via API'et, gennem intentions. Disse er baseret pΓ₯ hvad brugeren gerne vil gennem CRUD operations vha. DEAN:

  • Get my notes. -> henter Notes liste
  • What are my tasks? -> henter Tasks liste
  • Do I have any events today? -> henter Events kalender ellers liste

πŸ” Authentication

  • Login med brugernavn + password (Unik GUIDs & Hashed passwords)
  • JWT tokens (access + refresh)

🧩 Komponentbaseret struktur

  • VoiceRecButton – hΓ₯ndterer al speech recognition
  • MultiPanel – universal liste-komponent til Notes/Tasks/Events
  • DeanPage – hovedassistenten
  • AuthContext – tokenstyring

πŸ“‚ Projektstruktur

HeyDEAN/
β”‚
β”œβ”€β”€ πŸ—‚οΈ HeyDEAN_API/           # API hovedmappe          
β”‚   β”œβ”€β”€ πŸ“ Controllers/         # API controllers
β”‚   β”œβ”€β”€ πŸ“ Data/                # DbContext og Seeders
β”‚   β”œβ”€β”€ πŸ“ DTOs/                # Data Transferable Objects
β”‚   β”œβ”€β”€ πŸ“ Extensions/          # Mapping til DTOs
β”‚   β”œβ”€β”€ πŸ“ Models/              # Data modeller
β”‚   β”œβ”€β”€ πŸ“ Repositories/        # Repository pattern filer
β”‚   β”œβ”€β”€ πŸ“ Services/            # Service pattern filer
β”‚   └── βš™οΈ Program.cs           # Where the magic is built
β”‚
β”œβ”€β”€ πŸ—‚οΈ HeyDEAN_Frontend/      # Frontend hovedmappe
β”‚   β”œβ”€β”€ πŸ“ src/                 # Source med alle filer/mapper
β”‚   β”‚   β”œβ”€β”€ πŸ“ components/        # Mappe til forskellige komponenter
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ buttons/         # Indeholder alle knapper
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ panels/          # Indeholder paneller
β”‚   β”‚   β”œβ”€β”€ πŸ“ pages/             # Mappe til forskellige sider
β”‚   β”‚   β”œβ”€β”€ πŸ“ context/           # Mappe til context mellem Auth og API
β”‚   β”‚   β”œβ”€β”€ πŸ“ lib/               # Indeholder Auth og Token generation (JWT)
β”‚   β”‚   └── πŸ“œ main.tsx           # Where the magic is empowered
β”‚   └── πŸ–ΌοΈ index.html         # Where the magic is shown (simple HTML page)

πŸ› οΈ Tech Stack

πŸ–ΌοΈ Frontend

  • React
  • TypeScript
  • Vite
  • TailwindCSS
  • Web Speech API

🧰 Backend

  • ASP.NET Core 9
  • Entity Framework Core
  • JWT Authentication
  • MySQL

For at installere og kΓΈre systemet, er der disse krav:

  • MySQL workbench/server (Systemet er opsat til at kΓΈre MySQL, men kan Γ¦ndres til andre SQL udbydere)
    Denne skal helst køre før man tænder for API.

πŸ”¨ Installation

For at kΓΈre programmet via localhost, skal man kΓΈre API, database og frontend hver for sig.

πŸ”— API

Efter download, gΓ₯ til mappen HeyDEAN_API, derefter kΓΈr disse kommandoer:

cd HeyDEAN_API
dotnet restore
dotnet ef migrations add initialCreate
dotnet ef database update
dotnet run

Nu er der en kΓΈrende API med tilgang til database, som kΓΈrer pΓ₯:

http://localhost:5152

For at prΓΈve eller teste, gΓΈres det via Swagger UI:

http://localhost:5152/swagger

πŸ–ŒοΈ Frontend

GΓ₯ til mappen HeyDEAN_Frontend, og kΓΈr disse kommandoer:

npm install
npm run dev

Nu kΓΈrer frontend pΓ₯:

http://localhost:5173

πŸ“Œ API Endpoints

πŸ§‘β€πŸ’» Authentication

Method Endpoint Description
POST /api/auth/register Register a new user
POST /api/auth/login Login and receive JWT + Refresh token
POST /api/auth/refresh-token Refresh access + refresh token
GET /api/auth Test protected route (requires authentication)
GET /api/auth/admin-only Admin-only protected route

πŸ€– DEAN Assistance

Method Endpoint Description
POST /api/dean/ask Send a prompt to DEAN and receive a response

πŸ“ Notes

Method Endpoint Description
GET /api/notes Get all notes
GET /api/notes/{id} Get a single note
POST /api/notes Create a note
PUT /api/notes/{id} Update a note
DELETE /api/notes/{id} Delete a note

βœ… Tasks

Method Endpoint Description
GET /api/tasks Get all tasks
GET /api/tasks/{id} Get a single task
POST /api/tasks Create a task
PATCH /api/tasks/{id}/complete Mark a task as completed
DELETE /api/tasks/{id} Delete a task

πŸ“… Events

Method Endpoint Description
GET /api/events Get all events
GET /api/events/{id} Get a single event
POST /api/events Create an event
DELETE /api/events/{id} Delete an event

πŸ’‘ Vision

DEAN skal pΓ₯ sigt kunne:

  • ForstΓ₯ kontekst gennem tale
  • UdfΓΈre handlinger (CRUD operations)
  • Integrere kalender styring
  • Kan assistere i flere formater (Browser, App, Widget, Desktop?)

⏳ Fremtidig udvikling

  • Brugerstyret data (kun brugerens egen data bliver vist)
  • Dockerization til nemmere kΓΈrsel
  • AI integration til bedre assistance (Ollama, GTP, etc)
  • Mulighed for Appudvikling (Native)
  • Andre muligheder for Voice recognitions (Er der andet end react-speech-recognition?)
      └──> PolyFill integration som understΓΈtter andre browsers
  • Custom persona og stemme til DEAN
  • Stemme aktivering eller call-to-action keywords (f.eks. "Hey Dean..")
  • Registrering af sprog ved fΓΈrste samtale med DEAN (language registration)

About

🦾 DEAN er en personlig assistent (PA) der er bygget til at hjælpe via stemme kommandoer.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages