https://github.com/byronka/memoria_project
A family tree / memorial site, an example of a larger project built with Minum
https://github.com/byronka/memoria_project
minimalist server-side-rendering tdd testing
Last synced: 20 days ago
JSON representation
A family tree / memorial site, an example of a larger project built with Minum
- Host: GitHub
- URL: https://github.com/byronka/memoria_project
- Owner: byronka
- License: mit
- Created: 2024-02-11T17:14:27.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2026-03-01T21:35:21.000Z (23 days ago)
- Last Synced: 2026-03-02T00:54:22.773Z (23 days ago)
- Topics: minimalist, server-side-rendering, tdd, testing
- Language: Java
- Homepage: https://inmra.com
- Size: 9.52 MB
- Stars: 6
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Memoria, a site for memories
============================
Memoria, a site for memories, production site at https://inmra.com/
This is a combination memorial and a family tree. It provides an
ability to easily add information for family members. This
information includes relations to other family members, biographical
info, and photographs.
Interesting technical aspects of the project:
- Size of the application, including all necessary dependencies: 600 Kb.
- Database/Web server: included, provided by [Minum](https://github.com/byronka/minum)
- Startup time: 500 milliseconds
- Average memory usage: 64 Mb
- Peak memory usage: 300 Mb with 176 persons and 387 photos under heavy continuous loading
- Average time per request: 5 milliseconds
Quick Start, after cloning
--------------------------
_Build and run:_
```shell
make restore_sampledb
make run
```
then visit http://localhost:8080
_Run pre-built system:_
```shell
cd docs
tar zxf inmra.tar.gz
cd inmra
./start.sh
```
then visit http://localhost:8080
Quick Start, downloading binary
-------------------------------
- Download it [here](https://github.com/byronka/memoria_project/raw/master/docs/inmra.tar.gz)
- decompress it: `tar zxf inmra.tar.gz`
- change to its directory: `cd inmra`
- start the program: `java -jar inmra.jar` or `docker compose up -d`
- visit http://localhost:8080
- To shut down - if run using `java -jar`, press ctrl-c. If docker, run `docker compose down`
- Note: the README in the inmra directory has critical information to login as admin
More-detailed Quick Start
-------------------------
This is an ongoing long-term project to develop software for a combined family tree and memorial site. While it
is incomplete, it acts as a realistic example for the [Minum](https://github.com/byronka/minum) web framework.
* This project uses Gnu Make as its build tool, wrapping calls to [Maven](https://maven.apache.org/)
* To load a sample database: `make restore_sampledb`, then run with `make run`. Wait until the
message "System is ready" and then hit http://localhost:8080
* To operate as an administrator, login at http://localhost:8080/login with a username of admin and
the password in the file "admin_password" in the root of the database directory.
* To run tests: `make test`
* For help: `make`
* Production version running at https://inmra.com
See the [development handbook](docs/development_handbook.md)
System requirements:
--------------------
Developed on a Windows 10 64-bit professional, on Cygwin, OpenJDK 21, with Gnu Make 4.4
Directories:
------------
- docs: documentation for the project
- cloud_operations: documents and scripts for deployment to the cloud
- .git: necessary files for Git.
- sample_db: a test database
- scripts: scripts that are run during compilation / analyzing / preparation for deployment
- src: source code for the application
- ui_tests: a separate project directory for the UI end-to-end tests
Root-level files:
-----------------
- .gitignore: files we want Git to ignore.
- .gitattributes: some details of how we want Git to operate on our project
- Makefile: configuration for the build tool, Gnu Make
- memoria.iml: untracked by Git - a configuration file for Intellij (optional)
- mvnw, mvnw.cmd - Maven's "wrapper" files - a way to provide Maven without it being already installed.
- pom.xml: Maven's configuration file, for building and obtaining dependencies
- README.md: this file
- SYSTEM_RUNNING: if this exists, it means the application is running