| src | ||
| .dockerignore | ||
| .gitignore | ||
| CLAUDE.md | ||
| mvnw | ||
| mvnw.cmd | ||
| pom.xml | ||
| README.md | ||
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 it’s 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.
Related Guides
- 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