Täysiverinen blogi kirjoittamiseen ja artikkeleiden hallintaan.
Kopioi tämä prompti Cursoriin tai muuhun AI-työkaluun aloittaaksesi projektin.
Luo blogi-sovelluksen perusrakenne. Tech stack: - Next.js 14 App Router - TypeScript - Tailwind CSS - Supabase (tietokanta, auth) - MDX artikkeleiden renderöintiin Tietokantarakenne: - posts (id, title, slug, content, excerpt, published_at, category_id, author_id) - categories (id, name, slug) - comments (id, post_id, author_name, content, created_at) - profiles (id, email, name, role) Sivut: - / (etusivu, uusimmat artikkelit) - /blog (kaikki artikkelit, filtteröinti) - /blog/[slug] (yksittäinen artikkeli) - /admin (suojattu admin-paneeli) Aloita tietokantarakenteesta ja API-funktioista.
Tässä projektissa rakennetaan seuraavat ominaisuudet:
Luo Next.js-projekti ja Supabase-tietokanta.
Luo Next.js 14 blogi-projekti TypeScriptillä. Konfiguroi Supabase-yhteys ja luo taulut: posts, categories, comments. Lisää tarvittavat tyypit.
Luo etusivu joka näyttää artikkelit.
Luo BlogList-komponentti joka hakee ja näyttää artikkelit Supabasesta. Näytä otsikko, tiivistelmä, päivämäärä, kategoria ja lukuaika. Lisää sivutus.
Rakenna artikkelin lukusivu.
Luo dynaaminen sivu /blog/[slug] joka näyttää yksittäisen artikkelin. Renderöi MDX-sisältö, näytä kirjoittaja, päivämäärä, tagit. Lisää sisällysluettelo.
Luo ylläpitonäkymä artikkeleiden hallintaan.
Luo suojattu admin-paneeli osoitteeseen /admin. Sisällytä artikkelilista, uuden artikkelin luonti, muokkaus ja poisto. Käytä Supabase Authia autentikaatioon.
Lisää artikkeleiden haku.
Luo hakutoiminto joka etsii artikkeleita otsikon ja sisällön perusteella. Lisää debounce ja näytä tulokset reaaliajassa. Käytä Supabase full-text searchia.
Lisää artikkeleihin kommentointi.
Luo kommenttijärjestelmä artikkeleille. Käyttäjä voi jättää kommentin nimellä ja viestillä. Näytä kommentit artikkelin alla. Lisää moderointitoiminto adminille.
Kun perusprojekti on valmis, voit laajentaa sitä näillä ideoilla:
Selaa kaikkia web-sovellukset projekteja tai tutustu muihin kategorioihin.