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.
- Brug browser mikrofonen til at tale med DEAN. (Kun Google Chrome pt.)
- Automatisk transskription via browserens
SpeechRecognitionAPI. - DEAN tager prompts og svarer med:
- Tekstbeskeder eller lister (Notes, Tasks, Events)
- Bruger og DEAN har en samtale i form a chatbubbles.
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 listeWhat are my tasks?-> henter Tasks listeDo I have any events today?-> henter Events kalender ellers liste
- Login med brugernavn + password (Unik GUIDs & Hashed passwords)
- JWT tokens (access + refresh)
VoiceRecButtonβ hΓ₯ndterer al speech recognitionMultiPanelβ universal liste-komponent til Notes/Tasks/EventsDeanPageβ hovedassistentenAuthContextβ tokenstyring
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)
- React
- TypeScript
- Vite
- TailwindCSS
- Web Speech API
- 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.
For at kΓΈre programmet via localhost, skal man kΓΈre API, database og frontend hver for sig.
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 runNu er der en kΓΈrende API med tilgang til database, som kΓΈrer pΓ₯:
http://localhost:5152For at prΓΈve eller teste, gΓΈres det via Swagger UI:
http://localhost:5152/swaggerGΓ₯ til mappen HeyDEAN_Frontend, og kΓΈr disse kommandoer:
npm install
npm run devNu kΓΈrer frontend pΓ₯:
http://localhost:5173
| 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 |
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/dean/ask |
Send a prompt to DEAN and receive a response |
| 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 |
| 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 |
| 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 |
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?)
- 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)