Under the hood of a small laravel app Speaker: George Drakakis Github project: https://github.com/drakakisgeo/payme.

Slides:



Advertisements
Similar presentations
EasyDirector® Simplifying the way you manage your business... Full-Featured Contact & Customer Relationship Management Tool Prepared by AITechConsulting.
Advertisements

About Me CTO, Individual Digital, Inc. (Startup) Author of ext/tidy, PHP 5 Unleashed, Zend Ent. PHP Patterns
New Release Announcements and Product Roadmap Chris DiPierro, Director of Software Development April 9-11, 2014
EFRONT V4 EXTENSIONS ARCHITECTURE. The goal  To offer more flexibility to 3 rd party users to modify eFront functionality  To further extend eFront.
1Proprietary and Confidential AirVantage API – Getting started David SCIAMMA – June 13th 2014.
V v Business Process AMTV Streaming TV Streaming.
USER MANUAL USER MANUAL 19 July TABLE OF CONTENTS System Description5 How It Works?6 Maxxbooking Plugin7-8 Hotel Info & Description10 Hotel Details11.
Ruby on Rails. What is Ruby on Rails? Ruby on Rails is an open source full-stack web framework. It is an alternative to PHP/MySQL. It can render templates,
Selected Topics in Software Computing Distributed Software Development CVSQL Final Project Presentation.
COMP 410 & Sky.NET May 2 nd, What is COMP 410? Forming an independent company The customer The planning Learning teamwork.
© 2003 By Default! A Free sample background from Slide 1 Week 2  Free PHP Hosting Setup  PHP Backend  Backend Security 
Drupal Commerce Better than Uber Andrew Root: druroot.
Phone: Mega AS Consulting Ltd © 2007  CAT – the problem & the solution  Using the CAT - Administrator  Mega.
The Switchvox Extend API
CSE Waitlist Made By: Peng Hu, Zhicheng Lin, Mark Mosby, Robert Pittman, and Derek Robati.
USER MANUAL USER MANUAL 21 June TABLE OF CONTENTS System Description4 How It Works?5 PLUGIN Maxxbooking Plugin6-7 Hotel Info & Description8-9 Availability.
Case Study.  Client needed to build data collection agents for various mobile platform  This needs to be integrated with the existing J2ee server 
INFSO-RI Enabling Grids for E-sciencE ARDA Experiment Dashboard Ricardo Rocha (ARDA – CERN) on behalf of the Dashboard Team.
Esri UC 2014 | Demo Theater | Using ArcGIS Online App Logins in Node.js James Tedrick.
Visit amzsoftech.com Click Here. Type the User name Type the password Click Login First time user Click Sign Up.
Visit amzsoftech.com Click Here. Type the User name Type the password Click Login First time user Click Sign Up.
© 2003 By Default! A Free sample background from Slide 1 Week 3  Backend Construction  Create your own CRM Please Visit:
Modern Development Technologies in SharePoint SHAREPOINT SATURDAY OMAHA APRIL, 2016.
Team: Daniel, Jeremy, Tai, Mike, Slavko (Formerly “Team Ramani Map”)
Web Technology Solutions
Why Laravel Development is the Best PHP Framework
Presented by: Harlow & Harlow, LLP
(and soon you will too) Presented by: Elizabeth Leimbach
Progress Apama Fundamentals
ONAP CLI (Command-Line Interface ) Architecture
Cruz Roja Tijuana Final Presentation.
Application area Events Conferences Exhibitions
What is Laravel ? By Georgi Genov.
How to use IoT in Bluemix
INTRODUCING A revolutionary invoicing solution enabling merchants to request and receive payments on the go!
Performed by: Taha shashtari Mahmoud shaka’a
Opening slide.
Programmer: Roman Martushev
Made By:- Easovation Solutions
Content Management System
Build a website like Amazon/Ebay/Etsy/Airbnb - experiences and advice.
Saravana Kumar TOP 10 FEATURES OF BIZTALK360
Build Better Apps with MEAN.
SECURE SAFE AND EASY WEBSITE GUIDE
Yii - For the Future - Gen Web Development Platform
SharePoint Framework Extensions
Employee Tracking app Mr. Yogesh Pant Chief Executive Officer MTOAG Moving Technology On A Go.
Main navigation: My Accounts, Move Money, Additional Services, and Reports. Primary Admins and Secondary Admins have full access to all accounts and services.
OUT OF THE BOX HOW TO USE THE SYSTEM
Trezor Support Phone Number For You!! Round The Clock
Taxi App source code Development Company
A Framework for Partial Payments
Five Reasons to Use SharePoint 2013 Communities
UCO BANK HONOURS YOUR TRUST
Simplified Development Toolkit
IS3440 Linux Security Unit 8 Software Management
A Global Trojan Solution
“MULTI -LEVEL MARKETING”
UPI.
Moodle Trigger Plugin Presented by Matt Porritt 1 1
Module P3 Practical: Building a webapp in nodejs and
Your code is not just…your code
Rock-solid Cloud Platform for PHP
Technical Integration Guide
Management Application for all segments
Mattermost’s Approach to Layered Extensibility in Open Source
ZTE Customer Request Self-Service Portal Operation Guide V1.0.5
Simplify the way you collect, integrate and share field data.
Building Windows Store Apps with Windows Azure Mobile Services
Your code is not just…your code
Presentation transcript:

Under the hood of a small laravel app Speaker: George Drakakis Github project:

You can find me on || the laravel.gr forum A bit about me. A full-stack developer with a Graphic Design & multimedia background, freelancing from 2003, located in Athens – Greece. Currently working on (L4  L5) (Drupal 7 + Laravel 5) (PHP 4 crap  to L5) Also… Laravel.gr community administrator and Co- Organizer of Athens Meetup. Big fan of Arts and Culture. Co-founder of artmagazine.gr and e.t.c. …soon I’ll be a Dad thing.

Important note a lot of code will follow …so let me tell you a few things about the code first.

The OCP app What the heck is that thing in the first place? 1

The general OCP logic Your client Fills a form You create a payment Link. You are paid.

In more detail Admin panel You create a link Your client visit the payment form through the link Payment gateway validate & collects payment Client fills in the payment form Money are transferred to your bank + add on Invoicing SEND Transaction info to / Slack

Task list 1.Create an administrator panel for the links 2.Create a payment form 3. alert and push notifications to slack 4.Translatable layout and easy customization 5.Flexible coding style, so payment gateways can be swapped in the future. 6.Integration Testing of the app 7.Deployment setup

The absolute basics MVC pattern / Routing / Middleware /.env setup

MVC Model View Controller (MVC) is a method that help us separate the core of our application from the graphics (View) and the Data (Model).

ROOTING Routing is the process of taking a URI endpoint and decomposing it into parameters to determine which module, controller, and action of that controller should receive the request.

MIDDLEWARE HTTP middleware provide a convenient mechanism for filtering HTTP requests entering your application. For example, Laravel includes a middleware that verifies the user of your application is authenticated.

.env Application variables per environment + protect private data like Api keys and credentials from GIT repositories

Routing ( app/Http/routes.php )

Routing ( app/Http/adminRoutes.php )

Database Migrations We need to create the database tables first. 2

Migration Example I

Migration Example II

The admin panel Lets create some links 3

Isadmin middleware

Main Template file

Localization

Elixir for the front end.

Admin Dashboard

“ We really should take a 5min break. Right?

The payment form Its time for our client to pay their link. Here is the fun part 4

AdminPaymentsController

Payment link route

The validpayment middleware

The payment link template body

The real deal. The payment controller

The Gateway implementation I have chosen BrainTree. It could really be anything you like. 5

Injecting an interface

The interface

The BrainTree implementation

A custom service provider

@if block now works in view!

User’s login Give a payment history to authenticated users. 6

The clef routes

The clef controller action

Integration Testing Automate the testing of your app 7

Backend testing

Payment form testing

Deployment Push to live and maintenance 8

"deployer/deployer“ package

Push to live command More info at dep deploy

“ Live as if you were to die tomorrow. Learn as if you were to live forever. ~ Mahatma Gandhi

Any questions ? You can find me at ◉ Slides will be available at meetup.com Thanks!