Projekt aplikacji SaaS
8 godz. 8 min · Next.js · Full-stack i Programowanie
Daniel NoworytaFull stack DeveloperNaucz się tworzyć bezpieczne systemy uwierzytelniania i autoryzacji, korzystając z Clerk. Pokażę Ci, jak to robić krok po kroku, aby Twoje aplikacje były bezpieczne i profesjonalne.
Zrozumiesz, jak skutecznie i bezboleśnie połączyć swoją aplikację Next.js z bazą danych PostgreSQL na DigitalOcean. Pokażę Ci, jak używać Prismy, aby ułatwić ten proces.
Dowiesz się, jak zarządzać routingiem i nawigacją w swojej aplikacji, aby użytkownicy mogli łatwo i intuicyjnie poruszać się po Twojej stronie.
Pokażę Ci, jak z łatwością wdrożyć swoją aplikację na Vercel, jednym z najpopularniejszych środowisk hostingowych dla aplikacji Next.js.
Nauczysz się zarządzać stanem aplikacji i jak wykorzystać server actions w praktyce, co pozwoli Ci na tworzenie bardziej zaawansowanych i dynamicznych funkcji.
Ten kurs jest dla osób, które już mają pewne doświadczenie z JavaScript i chcą zgłębić swoje zrozumienie Next.js. Zakładamy, że znasz podstawy TypeScript, TailwindCSS, ale nie potrzebujesz doświadczenia z Next.js - wszystko wyjaśnię Ci od podstaw!
Zanim jednak przejdziemy do budowania
marketing layout chciałbym tutaj zakończyć dwoma rzeczami.
Otóż pierwsza rzecz to nie podoba mi się
to, że te formularze czy to rejestracji nowego użytkownika, czy do zapisu
zalogowania się są tutaj w lewym górnym rogu.
Załóżmy sprawdźmy jak możemy sobie z tym poradzić.
I tutaj też dostajemy jakiś side nav, którego tak naprawdę nie chcemy dostawać.
Jest to spowodowane tym, że mamy layout,
który tak naprawdę jest odpowiedzialny za całą naszą aplikację.
Co tak naprawdę nie powinno być miejsca, bo my w całej naszej aplikacji
chcemy mieć tylko i wyłącznie tak naprawdę dwie grupy.
Mamy App, która będzie miała swój.
To jest layout odpowiedzialny, za który mamy tutaj.
I edytujemy sobie wszystkie importy.
Sprawdźmy teraz na naszą stronę. Zobaczymy.
Mamy jakiś error failure directory.
Jest to spowodowane tym po prostu, że nasz Saint nie ma żadnego layoutu.
Teraz musimy się tym zająć.
Przejdźmy do naszego outfitu.
Też potrzebujemy sobie stworzyć layout.
W naszym przypadku layout będzie bardzo prosty.
Chcemy tak naprawdę tylko wyśrodkować
wszystkie dzieci, czyli Flex wysokość naszego rapera.
Chcemy, żeby był screen, szerokość też.
Chcemy wyśrodkować sobie wszystko co jest w środku.
Tak naprawdę teraz, kiedy odświeżamy
nasz kod, już mamy nasz formularz zapisu na środku naszej strony.
Jeżeli chodzi o zakładanie konta też wygląda to dużo lepiej.
Myślę, że pomożemy.
Jeżeli chodzi o logikę po naszej stronie
developerskiej możemy to uznać za wystarczające.
Na tę chwilę zakończymy to wszystko,
dodamy sobie wszystkie zmiany za kombinujemy.
Minusem et plus end layout.
I wybudujemy sobie to obręcze.
I teraz musimy zadbać o to, żeby to wszystko zadziałało również na produkcji.
Bo jeżeli przejdziemy teraz na naszego Gita, gdzie mamy nasze repozytorium
z Pocket SAP, to czy chcąc stworzyć tutaj pull request będziemy musieli sobie
przetestować ten sam flow na produkcji na produkcji?
Oczywiście mamy inny adres URL, do tego też pewnie nie.
Nie chcemy zrobić od razu do maina, a chcemy zrobić nowy pull
request najpierw z obręczami Clark Out do Develop a.
Sprawdzimy tutaj deployment Asphalt.
Jest to jak najbardziej zrozumiały.
Natomiast możemy sobie dalej zrobić config.
I kolejna rzecz, którą będziemy
potrzebować to na pewno zrobić sobie questa z.
Developer do maina Developer Deployment.
Sweet mamy z tego względu, że mamy nowe
zmienne środowiskowe, których jeszcze nie dostarczyliśmy na Wersalu.
Mamy te zmienne środowiskowe tak naprawdę
tylko i wyłącznie po stronie naszej, po stronie lokalnej.
Natomiast żeby wszystko fajnie
funkcjonowało też na Wersalu, to musimy też te zmienne środowiskowe dodać na.
Dlatego teraz sobie przejdziemy na wersje
na stronę naszego projektu Pocket SAP i tutaj prawdopodobnie mamy
deweloperów, to mamy nie zakończone sukcesem.
Sprawdźmy czy dostajemy jakieś logi.
Mamy tutaj więc Primy, autorzy fikcji prima generate.
Musimy troszeczkę zmodyfikować nasz build build skrypt w naszej aplikacji.
Przejdźmy do pkt.
Jackson i tutaj jeżeli chodzi o Bielsko musimy najpierw wywołać Prisma Generate.
Najpierw wygenerował się klient, a potem żeby wystartował nasz build.
Teraz już sobie możemy to wysłać.
Znowu git status, bo my taki commit.
Git, push, pull klekot.
Jeszcze raz sobie zrobimy pull request.
Przejdźmy teraz do git huba.
Znowu tu jeżeli chodzi o pull request.
Nowy pull request znowu naszego Branch to developer.
Pull request.
Zmarnujemy tego pół roku i jak już ten pull request zostaje zmarnowany, możemy
zrobić nowego pull request z develop maina czy pull request.
To już jest nasza wersja produkcyjna.
Skąd?
Sprawdźmy, jak wygląda teraz build na naszym najnowszym.
Jak wygląda nasz PIT na nowe osoby?
Pierwszy przeszedł wszystko fajnie, drugi też prawdopodobnie przejdzie, trzeci też.
Natomiast jest jeden problem
to w naszych opcjach jeżeli chodzi o environment variable mamy tylko database.
Jeżeli natomiast spojrzymy, potrzebujemy dużo więcej.
Także teraz przejdźmy do naszego pliku doc.
I kopiujemy te wszystkie Environment Variable mamy tutaj.
Wklejamy je tutaj.
Usuniemy jeszcze ten poprzedni co mieliśmy.
I kopiuj wklej.
Wszystkie Payment Variable zostały spopularyzowane i dajemy save.
Zapisujemy 2 element Variable już w tym momencie.
Jeśli deployment na produkcji się zakończy, odwiedzimy naszą stronę,
sprawdzimy cały flow autentykacji czy rzeczywiście działa nam na produkcji.
Natomiast pierwsza rzecz, którą sobie
zrobimy to na pewno musimy zmodyfikować nasz web albo dodać nowych łebków.
No tego będziemy potrzebować.
Na naszym developer także dodajemy nowy endpoint i tutaj w tym nowym porcie
wykorzystamy podobny adres, który mamy tutaj.
Natomiast w naszym przypadku tylko ta
końcówka nas interesuje, bo na nowym kroku jako pierwszy adres URL
będziemy mieli adres naszego naszego serwera na na Wersalu.
Także tutaj musimy sobie dodać nowy endpoint z adresem serwera.
Ta wersja, czyli jeżeli poczekamy
za chwilkę się zakończy, przejdziemy do tej aplikacji i zobaczymy adres URL,
który potrzebujemy już możemy sobie tutaj do poradzie dodać nowy endpoint.
Ja sobie dodam tą końcówkę póki co tutaj w środek będziemy musieli wkleić
adres naszej aplikacji i produkcyjnej, czyli zobaczmy sobie projekt.
To jest produkcyjny adres naszej
aplikacji, czyli to jest to co potrzebujemy tak naprawdę.
Przejdźmy do Dashboard i zapiszemy tą opcję tutaj.
I tak samo interesuje nas user created
updated tak jak to w przypadku środowiska deweloperskiego zrobimy.
Mamy tutaj już wszystko zrobione, adres poprawny.
Zróbmy sobie teraz client, natomiast
sprawdźmy czy mamy jeszcze type na naszym naszym serwerze.
Żeby sprawdzić problemy, które mamy tutaj
na warstwie to możemy skorzystać z pliku logs log z końcówka.
W tym momencie dostajemy feedback.
Sprawdźmy co tutaj chodzi.
Mamy Missing Killers, skrót Kill Rapid i
mamy Missing King na tle, a także sprawdźmy jeszcze raz, czy rzeczywiście
nasza aplikacja ma wszystkie klucze potrzebne.
Natomiast zanim to zrobimy,
skorzystajmy z tego adresu, to kończmy konfigurację,
bo z niego też dostaniemy zwykłe próbki, które będziemy wykorzystać na produkcji.
Tutaj jeżeli chodzi o adres wszystko jest w porządku.
Zróbmy sobie create.
I mamy nasz nowy sekret, który będzie potrzebny na naszym środowisku.
Weźmy sobie znowu Pocket SAP jeżeli chodzi o Settings.
Mamy tu nasze zmienne środowiskowe i musimy zmodyfikować.
Web Foxy, Web Hub Secret chcemy zrobić EDIT tutaj jeżeli chodzi o wartość musimy
wkleić wartość nowego by zapisać to już w tym momencie powinno być wszystko ok.
Mamy wszystkie sekrety, możemy spróbować sobie read.
Planować naszą aplikację, czyli zróbmy
sobie deployment projekt i zróbmy sobie read deploy.
Sprawdźmy teraz, czy nasza aplikacja zostanie poprawnie zbudowana na produkcji.
Tym razem nasza aplikacja została
opracowana poprawnie, czyli możemy odwiedzić już pod naszym adresem.
Aplikacja już tutaj chodzi pod adresem Wersja.
Jeżeli wszystkie zmienne środowiskowe mamy wpisane poprawnie, no to teraz jeżeli
sobie przejdziemy do naszych userów, spróbujemy.
Najpierw spróbujemy się zalogować tym samym userem, którego mamy, czyli
przejdźmy do naszej aplikacji produkcyjnej.
Przejdźmy na stronę.
Sign in powinno odpowiedź na okienko do logowania mamy okienko do logowania.
Zaloguj się użytkownikiem, którego już mamy.
I tutaj wpiszmy hasło Powinniśmy móc się zalogować.
Tak, jesteśmy na dashboard.
Wszystko funkcjonuje dobrze.
Teraz usuniemy tą sesję.
Wystarczy.
Musimy się od nowa oczywiście zalogować.
Natomiast my chcemy zrobić coś innego.
My chcemy sprawdzić logikę związaną z Sena page.
Czyli przejdźmy do naszego adresu sign up.
To jest miejsce, gdzie możemy tworzyć nowego użytkownika.
Najpierw usuniemy tego użytkownika.
Tutaj użytkownik już nie istnieje.
Usuniemy sobie tak samo naszego
użytkownika z naszej bazy danych, czyli localhost 5.5 5.
To jest nasze studio, które cały czas chodzi.
Usuniemy tego użytkownika z naszej bazy danych.
I teraz oczywiście, że możemy zapiąć kolejnych.
Jeżeli usuniemy użytkownika
to usuwamy go też tutaj nie byłoby to dobre rozwiązanie.
Natomiast my chcemy sprawdzić, czy flow
rejestracji użytkownika działa poprawnie w środowisku już produkcyjnym.
To co mamy tutaj to jest adres środowiska produkcyjnego deploy owania.
Nasza aplikacja.
Username tak jak poprzednio e-mail i hasło.
Spróbujemy znowu zarejestrować nowego użytkownika.
Teraz musimy sobie przekopiować kod weryfikacyjny.
Póki co kod weryfikacyjny przyszedł do nas na maila.
Czyli ta logika tutaj działa na produkcji dobrze.
Zobaczmy, czy rzeczywiście logika rejestracji nowego użytkownika działa.
Jesteśmy na Burdzie
i w tym momencie powinien nam pojawić się nowy użytkownik naszej bazy danych.
Tak wszystko działa.
Zarówno logika tworzenia użytkowników i na
tym dokumencie, i na produkcji jest w porządku.
Także możemy sobie
zamknąć ten temat i przejść do budowania kolejnych części, czyli marketing layoutu.