Prenumerationslådor är idag en alltmer populär affär. Du kan hitta dem för allt från grooming produkter till friska snacks, barnspel och till och med glass. I den här handledningen visar jag dig hur du snabbt bygger en webbapp för att testa om du kan hitta de första 1000 kunderna för din prenumerationsboksidé!
Vår app är inspirerad av cocktailabonnemang Shaken och innehåller följande funktioner:
Denna handledning visar dig hur du konfigurerar ett fullföljande back-end och hur du bygger den AngularJS-fronten som hakar upp till det.
Den fullständiga kodbasen för fronten finns på GitHub.
Kupong: Stamplay har gett Tuts + läsare en exklusiv kupong för att ge 6 månader i plusplanen gratis ($ 600 värde). Kupongkoden är CODETUTSPLUS och den löper ut den 10 oktober. Registrera dig nu gratis för att lösa in den.
Stamplay är en webbaserad utvecklingsplattform som ger utvecklare ett otroligt snabbt sätt att bygga helt integrerade applikationer. Stamplay hanterar besväret att prata med många olika API, så att du inte behöver.
Stamplay bygger på begreppet komponenter; komponenter är byggstenarna i vår ansökan. Vi kan se de olika verktygen som är tillgängliga för oss under Uppgifter> Komponenter.
När du är inloggad hälsas du med denna enkla och eleganta instrumentbräda. Vi skapar en applikation här. Namnge det som du vill, men kom ihåg att det här namnet är vad vi ska använda för att identifiera vår ansökan. Detta kommer också att användas som webbadress för vår ansökan när den är värd.
I vårt fall använder vi "tutsplus", och vår ansökan kommer att vara värd på https://tutsplus.stamplayapp.com.
Nu börjar vi konfigurera bakre änden.
Den här appen kommer att innehålla en Facebook-inloggning. Vi kommer att kunna interagera med Facebook API och hantera inloggning och inloggning, alla utan en enda kodrad. Eftersom vi vill att våra användare ska registrera sig med Facebook måste vi gå vidare till sidan Facebook Developers och skapa en ny utvecklarapp.
Välj Hemsida, och när du får din app skapad kan vi ta två saker som vi behöver från Facebook för att integrera med Stamplay:
Dessa två saker finns under Inställningar> Grundläggande.
Nu när vi har vårt App ID och App Secret, kan vi ansluta dem till Stamplay.
Gå tillbaka till Stamplay och välj användare från huvudmenyn, och sedan autentisering. Lägg till Facebook som registreringsservice, kopiera och klistra in App ID och App Secret, och klicka Spara.
Du kan nu registrera användare via Facebook!
Nu när vi har anslutit våra Facebook-referenser tillhandahåller Stamplay en bekväm API-adress för att hantera inloggning med Facebook. Låt oss gå dit nu och se vår Facebook-inloggning i aktion.
Gå till https://tutsplus.stamplayapp.com/auth/v1/facebook/connect.
Och boom! Du har din Facebook-inloggning igång.
Inte allt kan hanteras med komponenter, så Stamplay ger oss ett enkelt sätt att hantera anpassade data. Tänk på detta som back-end-databasgränssnittet för din ansökan.
Order spåras med ett Objekt som heter order
. Den har följande fem egenskaper:
Stamplay kommer omedelbart att avslöja RESTful APIs så fort du skapar objektet. Slutpunkten kommer att se ut så här: https://APPID.stamplayapp.com/api/cobject/v1/orders.
Vi måste fakturera våra kunder regelbundet, och tack och lov är det enkelt att göra med Stripe! Den återkommande betalningsbearbetningen genomförs inom plankonceptet. Stripplaner är objekt som representerar kostnads- och faktureringscykeln för dina prenumerationer.
För att ställa upp det måste du skapa din plan i Stripe Console> Planer:
När du är klar, gå tillbaka till Stamplay och anslut Stripe-komponenten i Uppgift> Komponenter. Välj Rand modul och klicka på Ansluta knapp.
Nu kommer Stripe-kontot att kopplas till Stamplay-appen, som kan utföra API-förfrågningar på våra vägnar.
Efter en framgångsrik Stripe-anslutning hamnar du på en vy som den här.
För att konfigurera MailChimp är processen ganska lik koppla enkelt ditt MailChimp-konto som du tidigare gjorde med Stripe, så ser du en sida så här:
Detta är serverns sida av vår ansökan, där huvuddelen av magiken händer! Låt oss säga att vi vill göra ett par saker:
Dessa två saker skulle normalt kräva en bra bit av kod, men inte med Stamplay ...
En trollkarl tar dig genom konfigurationen av uppgiften. Under Uppgifter> Hantera, skapa en ny uppgift och sätt upp det som du vill ha. Så här har vi ställt in välkommen e-post-uppgiften:
Då kan du konfigurera åtgärden som använder variablerna som kommer ut från avtryckaren (i det här fallet användaren). Så här har vi konfigurerat vårt:
Att skicka användarnas e-post till din e-postlista på MailChimp är enkelt.
Under Uppgifter> Hantera, skapa en ny uppgift och sätt upp det som du vill ha. Så här har vi satt upp MailChimp-prenumerationsuppgiften.
För att börja arbeta med vår främre del behöver vi använda Stamplay CLI-verktyget.
Det här verktyget ger oss möjlighet att arbeta med våra Stamplay-applikationer. Det tillåter oss att:
$ npm installera -g stamplay-cli
Låt oss skapa en ny mapp och initiera vår Stamplay-applikation till den mappen.
$ mkdir tutsplus && cd tutsplus $ stamplay init
Du blir uppmanad att ange din appId
(namnet på din app) och din apikey
. I det här fallet är de tutsplus
och 4 **** 0
respektive.
Detta kommer att skapa en stamplay.json-fil i roten till din app så att Stamplay när du distribuerar känner till dina uppgifter.
"appId": "tutsplus", "apiKey": "4e **** 0", "public": "./", "ignore": ["stamplay.json", "** /. *" "** / node_modules / **"]
För att träffa marken med en bra design började vi från en av de många coola gratis HTML5-mallarna som drivs av Templated.co. Den vi använde heter Retrospect.
Låt oss ladda ner det och pakka ut det till vår projektmapp. Låt oss sedan installera några ytterligare bibliotek här med Bower. Kör följande kommando och vi kommer att vara bra att gå:
$ bower installerar vinkelvinkel-ui-router vinkel-stamplay stamplay-sdk vinkelrute -save
För att kunna använda Stamplay med Angular måste vi:
Här är de linjer som krävs för att göra allt detta. Vi lägger till dem nedanför tagg av vår index.html-fil:
... ...
Se till att du har skrivit din egen APPID
in i funktionen Stamplay.init. Vi kan nu starta vår lokala server för att säkerställa att allt laddas korrekt. Kör följande:
stamplay start
Du kommer att se att din ansökan är redo att gå på http: // localhost: 8080.
Vi kommer att skapa några filer för vår kantiga applikation:
De två tjänstefilerna kommer att använda Stamplay SDK och vinkel-stam-spelbibliotek för att hjälpa vår applikation att interagera med vår stamdata.
Det viktigaste är userService.js. Den har några funktioner och hjälper oss att fånga data eller skapa data. För en mer djupgående titt på vad Stamplay SDK kan hantera, var noga med att kolla in dokumentationen.
UserService.js använder Stamplay JS SDK för att ge våra Angular app följande funktioner:
/ * global vinkel, Stripe, konsol * / 'använd strikt'; angular .module ('tutsplus.service') .factory ('userService', ['$ q', '$ stamplay', funktion ($ q, $ stamplay) var användare = $ stamplay.User (). login function return user.login ('facebook';, logout: funktion () return user.logout ();, isLogged: function () return user.isLogged ();, saveAddress : // Funktion (adress, ort, postnummer) // Spara användarens adressinformation, getUserModel: function () // Få användarinformation, createCard: function (cardObj) // Samla kreditkortsinformation och lagra den via Stripe , prenumerera: funktion (planId) // Prenumerera användare, unsubscribe: function (planId) // Avbryt användarabonnemang;]);
Vår ansökan har tre sidor:
Dessa sidor hanteras av tre kontrollanter (som rekommenderas av bästa praxis), som är homeCtrl.js, subscriptionCtrl.js och profileCtrl.js.
Sidmallar och kontroller är bundna av huvudvinkelappen.
Här är grunden för vår app.js:
/ * global vinkel * / 'använd strikt'; angular.module ('tutsplus', ['tutsplus.service', 'ngRoute', 'ui.router', 'ngStamplay']); vinkel. modul ('tutsplus') .config (funktion ($ stateProvider, $ urlRouterProvider) $ urlRouterProvider.otherwise ('/'); $ stateProvider.state ('home', url: '/', templateUrl: '/ sidor / home.html ', controller:' homeCtrl ', controllerAs:' home ') .state (' prenumerationer ', url:' / abonnemang ', templateUrl:' /pages/subscriptions.html ', controller:' subscriptionCtrl ', controllerAs:' sub ') .state (' profil ', url:' / profil ', templateUrl:' /pages/profile.html ', controller:' profileCtrl ', controllerAs:' profil '); ) / * * Spara loggad användare, om den finns, i rootScope * / .run (['$ rootScope', 'userService', funktion ($ rootScope, userService) userService.getUserModel () .then (funktion (userResp) $ rootScope.user = userResp;);]);
Nu behöver vi bara ladda våra nya filer i index.html nedanför de bibliotek vi lagt till tidigare.
... huvudet av index.html-filen ...