Vstupní stránky pro generování potenciálních zákazníků pomáhají usnadnit proces získávání uživatelů a obvykle se vytvářejí za účelem shromažďování osobních údajů uživatele. S těmito informacemi se značka může rozhodnout poslat zdroje nebo zjistit demografickou skupinu potenciálního zákazníka. Vstupní stránky pro generování potenciálních zákazníků vytvářejí počáteční kontaktní bod mezi naší značkou a potenciálním zákazníkem.
Co budeme stavět
Tento příspěvek pojednává o vytvoření vstupní stránky pro shromažďování a ukládání kontaktních informací uživatele v aplikaci Next.js. Tato aplikace nevyžaduje vlastní backend server.
Adresa URL GitHubu
https://github.com/Iheanacho-ai/appwrite-email-leads
Předpoklady
Abychom z tohoto projektu vytěžili maximum, vyžadujeme následující:
- Základní znalost CSS, JavaScriptu a React.js
- Na počítači je nainstalován Docker Desktop, spusťte
docker -v
příkaz k ověření, zda máme nainstalovanou plochu dockeru, pokud ne, nainstalujte jej odtud - Instance Appwrite běžící na našem počítači, podívejte se na tento článek a vytvořte místní instanci Appwrite. K ukládání e-mailových potenciálních zákazníků použijeme výkonnou databázovou službu Appwrite
Nastavení naší aplikace Next.js
Next.js je open-source rámec React, který nám umožňuje vytvářet statické webové aplikace vykreslované na straně serveru.
Chcete-li vytvořit naši aplikaci Next.js, přejdeme do našeho preferovaného adresáře a spustíme příkaz terminálu níže:
npx create-next-app@latest
# or
yarn create next-app
Po vytvoření naší aplikace změníme adresář na projekt a spustíme vývojový server s:
cd <name of our project>
npm run dev
Chcete-li vidět naši aplikaci, přejděte na http://localhost:3000.
Instalace aplikace Appwrite
Appwrite je end-to-end serverové řešení s otevřeným zdrojovým kódem, které umožňuje vývojářům rychleji vytvářet aplikace.
Chcete-li používat Appwrite v naší aplikaci Next.js, nainstalujeme sadu SDK na straně klienta Appwrite pro webové aplikace.
npm install appwrite
Vytvoření nového projektu Appwrite
Během vytváření instance Appwrite jsme specifikovali, jaký název hostitele a port vidíme naši konzoli. Výchozí hodnota je localhost:80.
Přejdeme na localhost:80 a vytvoříme nový účet, abychom viděli naši konzoli.
Na naší konzoli je Vytvořit projekt knoflík. Kliknutím na něj spustíte nový projekt.
Náš řídicí panel projektu se zobrazí, jakmile projekt vytvoříme. V horní části stránky je Nastavení bar. Klikněte na panel nastavení pro přístup k ID projektu a Koncový bod API .
Zkopírujeme ID projektu a Koncový bod API , kterou potřebujeme k inicializaci Appwrite Web SDK.
V našem index.js
soubor, inicializujeme novou instanci Appwrite pomocí následujícího.
import {Appwrite} from "appwrite";
import {useEffect, useState } from "react";
const Home = () => {
// Init our Web SDK
const sdk = new Appwrite();
sdk
.setEndpoint('http://localhost/v1') // our API Endpoint
.setProject(projectID) // our project ID
;
return(
<div>Hello World!</div>
)
}
export default Home;
Vytvoření kolekce a atributů
Ve webové konzoli Appwrite klikneme na Databáze na levé straně řídicího panelu.
Kolekci vytvoříme v záložce databáze kliknutím na Přidat kolekci knoflík. Tato akce nás přesměruje na Oprávnění stránku.
Na Úrovni kolekce chceme přiřadit Přístup pro čtení a Přístup pro zápis s role:all hodnota. Tato oprávnění můžeme později upravit, abychom řídili, kdo má přístup ke čtení nebo zápisu do naší databáze.
Napravo od Oprávnění zkopírujeme ID sbírky , které potřebujeme k provádění operací s dokumenty sbírky.
Dále přejdeme na Atributy vytvoříte vlastnosti, které chceme, aby dokument měl.
Vytvoříme e-mail atribut emailAddress.
Vytvoření naší vstupní stránky
V našem index.js
vytvoříme naši vstupní stránku. Tato stránka se skládá z input
prvek, který uživatelům umožní zadat jejich e-mailové adresy, které se uloží do databáze.
import {Appwrite} from "appwrite";
import {useEffect, useState } from "react";
const Home = () => {
// Init our Web SDK
const sdk = new Appwrite();
sdk
.setEndpoint('http://localhost/v1') // our API Endpoint
.setProject(projectID) // our project ID
;
return(
<div className="home">
<div className="title-container">
<h2>Orange Music</h2>
<p>Input your email address to get updates when we launch!</p>
<input
type="text"
/>
<button type="button">Add email address</button>
</div>
</div>
)
}
export default Home;
POZNÁMKA: Používáme tlačítko s type= button
k přepsání výchozího chování tlačítka při odesílání.
V našem global.css
přidáme tyto styly CSS na naši vstupní stránku.
body{
margin: 0;
padding: 0;
}
.home{
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
background-image: url('https://res.cloudinary.com/amarachi-2812/image/upload/v1649445450/music-banner_zveuix.jpg');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
}
.title-container h2{
color: #fff;
font-size: 32px;
}
.title-container p{
color: rgba(255, 255, 255, 0.815);
font-size: 18px;
}
.title-container input{
outline: none;
height: 30px;
width: 250px;
}
.title-container button{
height: 35px;
background-color: #111;
color: #fff;
border: 1px solid #111;
}
Pro náš obrázek na pozadí můžeme použít jakýkoli odkaz na obrázek. V tomto tutoriálu však používáme obrázek uložený na Cloudinary, protože je snazší aplikovat transformace a optimalizovat doručení.
Chcete-li pochopit, jak nahrát obrázky do Cloudinary, podívejte se na dokumentaci Cloudinary.
Zde je naše vstupní stránka:
Přidání interakce vstupu s databází
Appwrite má bezpečnostní zásady, které trvají na tom, abychom se přihlásili, abychom mohli používat funkce Appwrite, jako je Databáze a Funkce Appwrite nám však umožňuje obejít tuto politiku pro jednoduché projekty, jako je tento, vytvářením anonymních uživatelských relací.
V našem index.js
vytváříme anonymní uživatelskou relaci jakmile se naše aplikace připojí pomocí Appwrite's createAnonymousSession
metoda.
import {Appwrite} from "appwrite";
import {useEffect, useState } from "react";
const Home = () => {
// Init our Web SDK
const sdk = new Appwrite();
sdk
.setEndpoint('http://localhost/v1') // our API Endpoint
.setProject(projectID) // our project ID
;
//creating an anonymous Session
const createAnonymousSession = async() => {
try{
await sdk.account.createAnonymousSession();
}catch(err){
console.log(err)
}
}
useEffect(()=> {
createAnonymousSession()
}, [])
return(
<div className="home">
<div className="title-container">
<h2>Orange Music</h2>
<p>Input your email address to get updates when we launch!</p>
<input
type="text"
/>
<button type="button">Add email address</button>
</div>
</div>
)
}
export default Home;
Dále v našem index.js
vytvoříme stavovou proměnnou pomocí React useState
háček pro uložení hodnoty naší e-mailové adresy input
formulář.
// email state
const [emailAddress, setEmailAddress] = useState()
Poté vytvoříme handleEmailAddress
funkce v našem index.js
soubor pro uložení e-mailových adres do databáze Appwrite.
// handle email submission
const handleEmailAddress = async () => {
try {
await sdk.database.createDocument(collectionID, 'unique()',{
"emailAddress": emailAddress
} )
setEmailAddress('');
alert("Email saved successfully!")
} catch (error) {
console.log(error)
}
}
V bloku kódu výše handleEmailAddress
funkce dělá následující:
- Vytvoří nový dokument v databázi pomocí
createDocument
Appwrite Tato funkce obdrží ID kolekce, které jsme uložili z Oprávnění stránka, unikátní() parametr, který určuje, že chceme dynamicky vytvořené ID dokumentu, a hodnoty atributů jako parametry - Upozorní nás, když jsme dokument úspěšně uložili, a poté vymaže informace v našem
emailAddress
stavová proměnná - Zaprotokoluje každou chybu, na kterou jsme narazili, do naší konzole
Dále předáme naši stavovou proměnnou jako hodnotu našemu input
prvek a náš handleEmailAddress
funkce na naše tlačítko onClick
posluchač události.
<div className="home">
<div className="title-container">
<h2>Orange Music</h2>
<p>Input your email address to get updates when we launch!</p>
<input
type="text"
value={emailAddress}
onChange= {(e) => setEmailAddress(e.target.value)}
/>
<button type="button" onClick={handleEmailAddress}>Add email address</button>
</div>
</div>
Zde je návod, jak naše index.js
vzhled souboru.
https://gist.github.com/Iheanacho-ai/c0b17efee282f5e2b280ac53fb2e8218
Zadejte prosím e-mailovou adresu, aby se zobrazila uložená v databázi.
Závěr
Tento článek popisuje použití Appwrite k vytvoření dat v databázi. Vytvořili jsme jednoduchou stránku pro generování potenciálních zákazníků v aplikaci Next.js.
Zdroje
Zde je několik zdrojů, které mohou být užitečné:
- Začínáme s aplikací Appwrite pro web
- Databázové rozhraní API
- Co je Appwrite a jak jej efektivně používat