Skip to content

arvyy/kawa-web-collection

Repository files navigation

Kawa web collection

Compiled documentation can be viewed at https://arvyy.github.io/kawa-web-collection/README.html

If you want inspiration on how a real project might look like using this collection, checkout scheme index https://github.com/arvyy/r7rs-index-site

Goals and target audience

Kawa web collection is an attempt to take mature and feature-complete web libraries and tooling, put them in a minimal wrapper, and enable them to be used through vanilla R7RS syntax. All modules below are optional; you pay in final-artifact size cost only for what you choose to use.

If you want to create web applications using Scheme, and don’t mind learning maven, hopefully this collection will be just for you.

Prerequisites

You must have these tools installed (commonly available through package managers)

  • JDK 11 (test by running javac -version)

  • Maven 3 (test by running mvn -version)

You should eventually read up about maven in general (https://maven.apache.org/guides/getting-started/) and maven kawa plugin (https://github.com/arvyy/kawa-maven-plugin), however if you use project generation command below, it will output all command line commands you need to run and package the application.

Setting up

Run mvn install from the root of this repository to install collection in local maven repository, which will make individual modules available for local machine.

To generate a scaffold project, navigate to some directory, and execute

mvn archetype:generate "-DarchetypeGroupId=com.github.arvyy.kawa-web-collection" "-DarchetypeArtifactId=auth-archetype" "-DarchetypeVersion=0.0.1"

When asked for groupId enter some domain you control, when asked for artifactId enter a short name for the project.

This will create a simple application, that includes RDBS based authorization system (including proper password salting and hashing), MPA web interface, loggin with Logback. To add other dependencies, use maven dependency block mentioned under each module, and paste it under <dependencies> tag. Likewise, if you don’t need some of the dependencies in the scaffold, remove corresponding <dependency> entry.

As mentioned, generated project will include a slim readme file, containing most important CLI commands to run and compile.

Wishlist

These are some of the modules that will hopefuly find their way to be included into this collection with time:

  • REST client

  • JWT library

  • Email sender

  • Excel (Apache POI) integration

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published