HEROKU LIVE DEMO -> : https://handlebarsstarter.herokuapp.com/home
English:Hey ! There is my new 2022 simple Full stack Node.js Handlebars starter. Handlebars is very practical and simplifies Full Stack programming well... No more Vue.js or React.js here, we use Handlebars, which is particularly reactive and allows fast and reliable vanilla JS programming! This depot won't use global variables stored on heroku, to make sure it works on any computer..
Spanish:
Oye ! Ahí está mi nuevo arrancador de manillar Node.js de pila completa 2022 simple.Handlebars es muy práctico y simplifica mucho la programación Full Stack...
French:
Bonjour, Voici mon nouveau starter simplifié Node.js - Handlebars de 2022.
Handlebars est très pratique et simplifie bien la programmation Full Stack ... Plus de Vue.js ou de React.js ici, on utilise Handlebars, qui est particulièrement réactif et permet une programmation JS vanilla rapide, instantanée et fiable !
Ce dépot n'utilisera pas de variables globales stockées sur heroku , de manière à pouvoir fonctionner sur n'importe quel ordinateur..
German:
Hey ! Da ist mein neuer 2022 einfacher Full Stack Node.js Handlebars Starter.Handlebars ist sehr praktisch und vereinfacht die Full Stack Programmierung gut...
- Node.js.
- Handlebars framework.
- HandleBars partials, helpers and variables.
- Express router.
- Node Session based User Authentication.
- Security MiddleWare eventually applied to the express routes .
- Generic Async CRUD(Create, Read, Update, Delete) sqlite db queries.
- Chinook demo Sqlite relational database file.
- Bootstrap 5 styles library.
- NodeMailer : Email from the app using a Gmail MailBox .
- Multiple files upload.
- Multiple CSS theme switching.
Home page :
Middleware User Session Control - Express routes - Graphical explanation (See list.js for example):
Async Database Query : ReadAll the Chinook Database Artists from the list.js route result :
Query All the Artist Table rows:
var artists = await sqliteCrud.readAll("Artist")
Send emails : Send emails from the app ( Fill config.json with your Gmail mailbox before, and set it to google 'less secure' mailbox feature) :
English:
Simplified and generic implementation of the HandleBars framework:
- A Middleware that secures access to express routes, thanks to Node.js session variables, can't access list.hbs if you ain't authenticated
- A generic CRUD(Create, Read, Update, Delete) file for the SQLite relational database ( Experimental)
- A Bootstrap 5 library and its media queries
- Asynchronous database queries ( Using Async Await)
Spanish:
Implementación simplificada y genérica del marco HandleBars:
- Un Middleware que asegura el acceso del express routes, gracias a las variables de sesión de Node.js
- Un archivo CRUD genérico, a la base de datos relacional SQLite ( Experimental)
- Una biblioteca de Bootstrap 5 y sus consultas de medios.
French:
Mise en place simplifiée et générique du framework HandleBars:
- Un Middleware qui sécurise l'accès aux routes express, grâce aux variables de sessions Node.js, vous ne pouvez pas accéder à list.hbs si vous n'êtes pas authentifié.
- Un Fichier CRUD(Create, Read, Update, Delete) générique vers la base de données relationelle SQLite ( Experimental).
- Une librairie Bootstrap 5 et ses medias queries.
- Une mise en place effective des partials ( Barre de navigation, chargement des librairies etc ...)
- Requêtes asynchrones sur la database Chinook ( On utilise Async Await)
German :
Vereinfachte und generische Implementierung des HandleBars-Frameworks:
- Eine Middleware, die dank Node.js-Sitzungsvariablen den Zugriff sichert
- Eine generische CRUD relationale SQLite-Datenbank
- Eine Bootstrap 5-Bibliothek und ihre Medienabfragen
Russian:
Упрощенная и общая реализация фреймворка HandleBars:
- Промежуточное ПО, которое защищает доступ благодаря переменным сеанса Node.js.
- Общий файл веб-служб CRUD для реляционной базы данных SQLite ( Experimental).
- Библиотека Bootstrap 5 и ее медиа-запросы
- CONFIG.JSON This is the app configuration , db connexion, ftp connexion, choosing dev or prod, etc ...
- APP.JS This is the node.js server: Includes the node.js params, node session module loading .
- MIDDLEWARE Add theses security functions to the express Routes, like this : middleware.requiresAuth ( See list.js for example), to allow access to any route only to authenticated users
- VIEWS : Handlebars HTML views.
- VIEWS\PARTIALS : Handlebars HTML partials ( Header, Footer, Sidebar ...), header.hbs will load the front end libraries( Bootstrap, Jquery...)
- TMP : This is a mandatory directory , used for HEROKU files uploads.
- FILES : This is where uploaded files are stored, when Heroku is not used.
- PUBLIC : There, you will find the STYLE.CSS file, for CSS medias queries, the App themes and the web application Images
- CRUD : There, you have one experimental generic Async CRUD file, allowing you to send JSON to the SQLITE relational DB. I won't use the Sequelize ORM this time, don't use this in production but use a ORM, I've done it real fast.
- DB\DATABASE.DB : This is the SQLITE relational database.
- APP.JSON : Used by "deploy to heroku".
- MAILER\MAILER.JS : All emailing related functions.
- USERS\USERS.JSON : This is the users list, I won't use the Database for that in this starter, To simplify all.
- CONFIG.JSON C'est la configuration de l'application, connexion db, connexion ftp, choix dev ou prod, etc ...
- APP.JS Il s'agit du serveur node.js : comprend les paramètres node.js, chargement des modules, démarrage de l'app.
- MIDDLEWARE Ajouter ces fonctions de sécurité aux Routes express, en écrivant ça : middleware.requiresAuth ( voir list.js par example), pour autoriser l'accès à la route aux utilisateurs identifiés
- VIEWS : Vues HTML Handlebars
- VIEWS\PARTIALS : Partiels HTML Handlebars ( En tête du site, Pied de page, Barre des tâches latérale ...) , Header.hbs charge les librairies front end ( Bootstrap, Jquery...)
- TMP : Il s'agit d'un répertoire obligatoire, utilisé pour les téléchargements de fichiers Heroku.
- FILES : c'est là que les fichiers téléchargés sont stockés, quand on utilise pas héroku.
- PUBLIC : Vous y trouverez le fichier style.css, pour les requêtes médias CSS, les thèmes App et les images de l'application web
- CRUD : Ici, on trouve le fichier CRUD (Create, Read, Update, Delete) expérimental qui permet de transférer des objets JSON dans la base de données SQLITE, pas d'utilisation de l'ORM Sequelize cette fois, n'utilisez pas cela pour de la production, mais un ORM.
- DB\DATABASE.DB : C'est la base de données SQLITE
- MAILER\MAILER.JS : Toutes les fonctions servant à l'emailing.
- USERS\USERS.JSON : La liste des utilisateurs, je ne me sers pas de la database dans ce starter, pour simplifier.
- CONFIG.JSON Esta es la configuración de la aplicación, conexión db, conexión ftp, elección dev o prod, etc...
- APP.JS Este es el servidor node.js: incluye los parámetros de node.js, carga del módulo de sesión de nodo.
- VIEWS : Handlebars del manillar.
- VIEWS\PARTIALS : Handlebars parciales (Encabezado, Pie de página, Barra lateral...)
- TMP: este es un directorio obligatorio, utilizado para cargar archivos de Heroku.
- FILES : Aquí es donde se almacenan los archivos cargados.
- PUBLIC : Allí encontrará el archivo style.css, para consultas de medios CSS, los temas de la aplicación y las imágenes de la aplicación web
- CRUD: Aquí encontramos el servicio web experimental CRUD (Crear, Leer, Actualizar, Eliminar) que permite transferir objetos JSON a la base de datos SQLITE, sin usar ORM Sequelize esta vez. Not to usar in production!
- CONFIG.JSON Dies ist die App-Konfiguration, DB-Verbindung, FTP-Verbindung, Auswahl von dev oder prod, etc ...
- APP.JS Dies ist der node.js-Server: Enthält die node.js-Parameter, das Laden des Knotensitzungsmoduls .
- VIEWS : Handlebars views.
- VIEWS\PARTIALS : Handlebars partials (Kopfzeile, Fußzeile, Seitenleiste ...)
- TMP : Dies ist ein obligatorisches Verzeichnis, das für das Hochladen von Heroku-Dateien verwendet wird.
- FILES : Hier werden hochgeladene Dateien gespeichert.
- PUBLIC : Dort finden Sie die Datei style.css für CSS-Medienabfragen, die App-Designs und die Bilder der Webanwendung
- CRUD: Hier finden wir den experimentellen CRUD-Webdienst (Create, Read, Update, Delete), der es ermöglicht, JSON-Objekte in die SQLITE-Datenbank zu übertragen, diesmal ohne Verwendung des ORM-Sequelizes.Not to usar in production, Utilisar ORM!
# npm install
- Clone the depot using smargit or any git tool, then simply install the node modules at the root of the app, using the NPM INSTALL command
- Clonez ce dépot avec Smartgit, puis installez les modules nodes , en tapant NPM INSTALL à la racine de l'application.
# npm run start