From 49a1e67b8d5cd324c09cb769b94154f3336500f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93lafur=20B=C3=BAi=20=C3=93lafsson?= Date: Thu, 3 Apr 2025 11:23:16 +0000 Subject: [PATCH] First Commit --- README.md | 44 ++++++++++++++++++++ Studio/Podcasts/TECHNICAL.md | 80 ++++++++++++++++++++++++++++++++++++ Studio/Podcasts/USER.md | 53 ++++++++++++++++++++++++ 3 files changed, 177 insertions(+) create mode 100644 README.md create mode 100644 Studio/Podcasts/TECHNICAL.md create mode 100644 Studio/Podcasts/USER.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..28324d7 --- /dev/null +++ b/README.md @@ -0,0 +1,44 @@ +# BORG - Yfirlit yfir skjölun + +Þetta skjal veitir yfirlit yfir öll skjölunarskrár í BORG verkefninu. + +## Efnisyfirlit + +### Tæknileg skjölun +- [Podcast Upptökur - Tæknilegt yfirlit](Studio/Podcasts/TECHNICAL.md) + - [Yfirlit](#yfirlit) + - [Tæknileg uppbygging](#tæknileg-uppbygging) + - [Hljóðupptaka](#hljóðupptaka) + - [Hljóðspilun](#hljóðspilun) + - [Gagnagrunnur](#gagnagrunnur) + - [API Endapunktar](#api-endapunktar) + - [Socket.IO Atburðir](#socketio-atburðir) + - [Öryggi](#öryggi) + - [Takmarkanir](#takmarkanir) + - [Þróun](#þróun) + +## Leiðbeiningar fyrir skjölun + +Þegar bætt er við nýrri skjölun í verkefnið: + +1. Setjið tæknilega skjölun í viðeigandi undirmöppu undir `Studio/` +2. Notið Markdown (.md) snið fyrir allar skjölunarskrár +3. Notið skýrar fyrirsagnir og kafla +4. Haldið skjölun uppfærðri með kóðabreytingum +5. Skjölsetjið allar API breytingar, nýja eiginleika eða breytingar sem hafa áhrif á bakvísa + +## Bæta við nýrri skjölun + +Til að bæta við nýrri skjölun: + +1. Búið til nýja .md skrá í viðeigandi möppu +2. Uppfærið þetta yfirlitsskjal með nýju skjöluninni +3. Fylgið núverandi stíl og sniði skjölunar +4. Bætið við viðeigandi tæknilegum upplýsingum og dæmum þar sem við á + +## Viðhald skjölunar + +- Farið yfir og uppfærið skjölun reglulega +- Tryggið að skjölun endurspegli núverandi útfærslu +- Fjarlægið úreltar upplýsingar +- Bætið við nýjum kaflum eftir því sem verkefnið þróast \ No newline at end of file diff --git a/Studio/Podcasts/TECHNICAL.md b/Studio/Podcasts/TECHNICAL.md new file mode 100644 index 0000000..ab0f5f1 --- /dev/null +++ b/Studio/Podcasts/TECHNICAL.md @@ -0,0 +1,80 @@ +# Podcast Upptökur - Tæknilegt yfirlit + +## Yfirlit +Podcast Upptökur er byggt á Next.js 14 með TypeScript og notar nýjustu tækni fyrir hljóðupptökur og spilun. Kerfið notar Web Audio API fyrir hljóðvinnslu og Socket.IO fyrir rauntíma samskipti. + +## Tæknileg uppbygging + +### Hljóðupptaka +- Notar `MediaRecorder` API fyrir upptökur +- Stuðningur við margar hljóðformáta (webm, ogg, mp4) +- 48kHz upptökuhraði með 1 rás +- Hljóðgæði: 510kbps +- Upptökutími: Allt að 50 mínútur + +### Hljóðspilun +- Notar `AudioContext` og `AnalyserNode` fyrir línurit +- Stuðningur við spilun, hlé, stöðvun og tímasetningu +- Sýnir tímalengd og núverandi spilunartíma +- Vísar hljóðbylgjuform í rauntíma + +### Gagnagrunnur +Upptökur eru vistaðar með eftirfarandi upplýsingum: +```typescript +interface PodcastRecording { + id: string; + filename: string; + createdAt: string; // ISO date string + size: number; + duration?: number | null; + mimetype: string; +} +``` + +## API Endapunktar + +### GET /api/studio/podcasts +- Sækir lista af öllum upptökum +- Skilar `PodcastRecording[]` + +### GET /api/studio/podcasts/play/{id} +- Sækir hljóðskrá fyrir spilun +- Skilar hljóðskrá sem stream + +### POST /api/studio/podcasts +- Vistar nýja upptöku +- Tekur við FormData með hljóðskrá +- Skilar `PodcastRecording` + +### DELETE /api/studio/podcasts/{id} +- Eyðir upptöku +- Skilar 204 ef upptakan var eytt + +## Socket.IO Atburðir + +### Upptaka +- `start-recording`: Byrjar upptöku +- `recording-data`: Sendir hljóðgögn +- `stop-recording`: Stöðvar upptöku + +### Spilun +- `play`: Byrjar spilun +- `pause`: Gerir hlé +- `stop`: Stöðvar spilun +- `seek`: Færir spilunartíma + +## Öryggi +- Öll API kall krefjast innskráningar +- Hljóðskrár eru vistaðar á öruggum stað +- Upptökur eru aðgengilegar aðeins fyrir eiganda þeirra + +## Takmarkanir +- Hámarksupptökutími: 50 mínútur +- Stuðningur við aðeins hljóðskrár +- Krafist er nýlegs vafra með stuðningi við Web Audio API + +## Þróun +- Notar TypeScript fyrir örugga kóða +- React hooks fyrir stjórn á stöðu +- Radix UI fyrir samræmda notendaviðmót +- Tailwind CSS fyrir stílsnið \ No newline at end of file diff --git a/Studio/Podcasts/USER.md b/Studio/Podcasts/USER.md new file mode 100644 index 0000000..fa84afd --- /dev/null +++ b/Studio/Podcasts/USER.md @@ -0,0 +1,53 @@ +# Podcast Upptökur - Notendaleiðbeiningar + +## Yfirlit +Podcast Upptökur er tól sem gerir þér kleift að taka upp og stjórna hljóðupptökum. Þú getur: +- Tekið upp hljóð með hljóðnema +- Spilað upptökur +- Halað upptökum niður +- Eytt upptökum + +## Að taka upp hljóð + +1. **Undirbúningur** + - Gakktu úr skugga um að hljóðnemi sé tengdur og virkur + - Veldu réttan hljóðnema ef þú ert með marga tengda + +2. **Upptaka** + - Smelltu á "Byrja upptöku" takkann + - Þú sérð upptökuferlið á línuriti + - Smelltu á "Stöðva" til að stöðva upptöku + - Upptakan verður sjálfkrafa vistuð þegar þú stöðvar hana + +## Að spila upptökur + +1. **Velja upptöku** + - Í upptökulistanum, smelltu á upptökuna sem þú vilt spila + - Upptakan birtist í spilaranum efst á síðunni + +2. **Spilun** + - Notaðu spilunartakkana til að: + - Spila/gera hlé (Play/Pause) + - Stöðva (Stop) + - Dragðu stikuna til að fara á ákveðinn tímapunkt í upptökunni + - Skoðaðu tímalengd upptökunnar + +## Að sækja upptökur + +1. **Niðurhal** + - Í upptökulistanum, smelltu á niðurhalshnappinn (↓) við hlið upptökunnar + - Upptakan verður sótt niður á tölvuna þína + +## Að eyða upptökum + +1. **Eyða upptöku** + - Í upptökulistanum, smelltu á ruslatunnu hnappinn (🗑️) við hlið upptökunnar + - Staðfestu að þú viljir eyða upptökunni + - Upptakan verður fjarlægð varanlega + +## Ábendingar + +- Þú getur tekið upp hljóð í allt að 50 mínútur í einu +- Upptökur eru vistaðar í .webm eða .mp4 formati +- Þú getur spilað upptökur beint í vafranum +- Upptökur eru vistaðar á netþjóninum og eru aðgengilegar hvar sem er \ No newline at end of file