Structure Web Application Framework
Go to file
2024-09-21 18:44:09 +02:00
config config/mysql: create database by default, use swaf user with password swaf by default, don't create database in production 2024-09-21 18:39:02 +02:00
scripts Make rollup available in dependant projects 2021-11-20 19:52:44 +01:00
src app: log all errors (debug) 2024-09-21 18:39:45 +02:00
test code cleanup: use URLSearchParams instead of querystring 2024-09-21 18:44:09 +02:00
.eslintrc.cjs Add specific tsconfig for eslint 2021-11-10 17:07:05 +01:00
.gitignore Move all sources to src folder, add common ts subproject 2021-05-27 15:26:19 +02:00
jest.config.js back/config: replace localhost with 127.0.0.1 2021-11-28 21:24:51 +01:00
LICENSE Add license 2020-08-25 17:58:34 +02:00
package.json Upgrade dependencies 2024-09-21 18:37:51 +02:00
README.md Rename project to swaf 2020-11-12 16:11:16 +01:00
rollup.config.js Add fonts copy to rollup config 2021-11-21 18:34:36 +01:00
tsconfig.json Move route building to common subproject, fix Time export 2021-06-01 14:34:10 +02:00
tsconfig.test.json Fix indent on tsconfig files 2021-04-27 15:44:04 +02:00
yarn.lock Upgrade dependencies 2024-09-21 18:37:51 +02:00

Structure Web Application Framework

A NodeJS TypeScript web application framework (duh).

/!\ Still in development! There are not near enough tests /!\

Use at your own risk. Also please feel free to contribute with issues, bug reports and pull requests.

Features

Application building

  • Model, View, Controller
  • Uses express
  • Custom Middleware classes that enable advanced modularity
  • Modular models (you can add components with some definition automation)
  • Simple database migrations (raw sql queries for now)
  • Nunjucks for the view template engine
  • Mail template system using Nunjucks + MJML
  • Beautiful logging thanks to tslog

Databases

  • MySQL (persistent data)
  • Redis (cache, session)
  • (more to come)

Common systems

  • Advanced modular multi-factor authentication system
  • CSRF protection
  • WebSocket server with Controller-style endpoint listeners
  • WIP: automatic updates