No description
Find a file
2026-01-31 17:26:48 +01:00
src Initial commit 2026-01-31 17:26:48 +01:00
.dockerignore Initial commit 2026-01-31 17:26:48 +01:00
.gitignore Initial commit 2026-01-31 17:26:48 +01:00
CLAUDE.md Initial commit 2026-01-31 17:26:48 +01:00
mvnw Initial commit 2026-01-31 17:26:48 +01:00
mvnw.cmd Initial commit 2026-01-31 17:26:48 +01:00
pom.xml Initial commit 2026-01-31 17:26:48 +01:00
README.md Initial commit 2026-01-31 17:26:48 +01:00

Lexinord

A Norwegian language learning app.

Features

  • Look up words in the dictionary, record how many times you've looked up a word, and add custom notes
  • Add words into collections, grouped by e.g. book or TV programme
  • View frequency data that shows how often a word has been used in historical sources like books and magazines, making it easier to know if it's worth learning
  • Automatically generated flashcards based on words you've looked up, using spaced repetition to ensure you remember them
  • Play word games like Hangman and word-search

Technical details

Monolith application written using Java and Quarkus. Data is stored in a Postgres database. The frontend is using Qute and HTMX.

Running the application in dev mode

You can run your application in dev mode that enables live coding using:

./mvnw quarkus:dev

NOTE: Quarkus now ships with a Dev UI, which is available in dev mode only at http://localhost:8080/q/dev/.

Packaging and running the application

The application can be packaged using:

./mvnw package

It produces the quarkus-run.jar file in the target/quarkus-app/ directory. Be aware that its not an über-jar as the dependencies are copied into the target/quarkus-app/lib/ directory.

The application is now runnable using java -jar target/quarkus-app/quarkus-run.jar.

If you want to build an über-jar, execute the following command:

./mvnw package -Dquarkus.package.jar.type=uber-jar

The application, packaged as an über-jar, is now runnable using java -jar target/*-runner.jar.

Creating a native executable

You can create a native executable using:

./mvnw package -Dnative

Or, if you don't have GraalVM installed, you can run the native executable build in a container using:

./mvnw package -Dnative -Dquarkus.native.container-build=true

You can then execute your native executable with: ./target/lexinord-1.0-SNAPSHOT-runner

If you want to learn more about building native executables, please consult https://quarkus.io/guides/maven-tooling.

  • REST (guide): A Jakarta REST implementation utilizing build time processing and Vert.x. This extension is not compatible with the quarkus-resteasy extension, or any of the extensions that depend on it.
  • Flyway (guide): Handle your database schema migrations
  • Qute Web (guide): Serves Qute templates directly over HTTP.
  • REST Client (guide): Call REST services
  • Qute (guide): Offer templating support for web, email, etc in a build time, type-safe way
  • REST Qute (guide): Qute integration for Quarkus REST. This extension is not compatible with the quarkus-resteasy extension, or any of the extensions that depend on it.
  • REST Jackson (guide): Jackson serialization support for Quarkus REST. This extension is not compatible with the quarkus-resteasy extension, or any of the extensions that depend on it
  • JDBC Driver - PostgreSQL (guide): Connect to the PostgreSQL database via JDBC