[In construction: last updated at 2019-01-03]

 

Introduction

I've been playing with a lot of web technologies in the past years. When starting a new project, I'm usually struggling between two mindsets: the tech explorer and the pragmatic engineer. The tech explorer mindset likes to test new frameworks: Why not try to build something in FeatherJS? Why not have a look at Firebase this time?  What about Kubernetes in production? The pragmatic engineer is value driven: Let's build a robust API, an efficient frontend using my favorites web technologies. Let's fast-track this project so I can start using it tomorrow!

 

Today is a pragmatic engineer day. I want to share with you my way of building an app from Scratch using robust web technologies in 30 minutes. And we will push it to production within these 30 minutes.

 

Our web app

NetworkIn

 

Set Up our Git Repository

Create special article

git init

git add *

git commit -m "first commit"

git remote add origin git@github.com:charlesBochet/quizz.git

git push -u origin master

To-do

 

Set up the backend

Laravel: https://laravel.com/docs/6.x

Install Composer: https://getcomposer.org/doc/00-intro.md

composer global require laravel/installer

http://www.compulsivecoders.com/tech/how-to-install-php-ext-zip-extension

Update your path: export PATH=$PATH:$HOME/.composer/vendor/bin

laravel new networkin

Update Readme

Remove package-lock.json

yarn

php artisan serve

 

Set up the frontend

To-do

 

Push to production

echo "web: vendor/bin/heroku-php-apache2 public/" > Procfile

git add .

git commit -m "Procfile for Heroku"

APP_KEY=base64:YWF52RyOEl4CsQMaUyJQZ7Wu0gsMRRomVJRh5w0czqY=

Browse url

 

Appendix

 

  • Frontend frameworks: jQuery (!), AngularJS, Angular, VueJS, ReactJS, NextJS, NuxtJS.
  • UI: Bootstrap, Material, Bulma, ...
  • Backend frameworks including Django (Python), Flask (Python), SpringBoot (Java), Symfony (PHP), Laravel (PHP), Express (NodeJS), Loopback (NodeJS), NestJS (NodeJS), FeatherJS (NodeJS), MeteorJS (NodeJS)
    Databases & Caching: MySQL, PostgreSQL, MongoDB, Neo4j, Oracle, Firebase, Redis.
  • Infra: VPS, AWS EC2, AWS ECS, AWS Elastic Beanstalk, Heroku, Docker, Kubernetes, Ansible, VirtualBox...