LISA runs on CodeIgniter 4.7.5 or newer and PHP 8.5.
Lisa Is Super Awesome (LISA) is an application made to track "things" between friends/a group of people who trust each other. It offers a simple, informal and trust-based system to let users tally on each other. Although the system is designed with a non-exploitative user base in mind are all actions related to a user still completely transparent, as each user can see on whom they tallied and who tallied on their tap.
Many use-cases can be imagined, in general LISA gives each user an integer sized balance which each user can subtract from on a one-by-one basis. Imagined use cases include collectively buying goods and keeping track of whom used what.
# Clone the repository
git clone https://github.com/Addono/LISA.git && cd LISA
# Install dependencies
npm ci
# Configure the URL, database, locale, and optional SMTP settings
cp .env.example .env
# Configuration is finished, let's deploy the application and all required services
docker compose up --build -dThe PHP container installs the locked Composer dependencies and prepares writable/ before starting PHP-FPM. The default database settings match Docker Compose. Change app.baseURL in .env when using another hostname. Never commit .env or expose it through your web server.
One small last thing we need to do is to run all database migrations, either point your browser at http://localhost:8080/install or runcurl http://localhost:8080/install.
🚀 And we are live at http://localhost:8080 🚀
Hint: The default admin credentials are admin:admin312 😉
Note: Depending on how you installed Docker it might be that Docker is not accessible at localhost, in that case replace localhost with the IP address of your Docker installation. E.g. for docker-machine users run $(docker-machine ip).
Requirements:
- PHP 8.5 with
intl,mbstring, andmysqliextensions. - Composer 2, Node.js, and npm.
- MySQL or MariaDB.
- Clone the repository, run
composer installandnpm ci. - Copy
.env.exampleto.envand configure your URL, database, locale, and SMTP server. - Configure the web server's document root as
public/, not the repository root. Forward dynamic requests topublic/index.phpand serve/node_modules/from the installed frontend dependencies, as shown in the Nginx configuration. - Make
writable/writable by the PHP process. Application code andvendor/must not be publicly accessible. - Open
/Installto initialize the database, then change the default administrator password.
Back up the database and the old configuration before deployment. This is a CI3-to-CI4 application conversion, following the official migration guide.
Move your database, URL, SMTP, and language settings from the old application/config/ files into .env using the names in .env.example. Existing tables, password hashes, model-version keys, and transaction data are retained. Preserve any configured database table prefix with database.default.DBPrefix. Do not import a fresh database or recreate existing tables. Running /Install again applies only outstanding schema versions. Existing sessions are replaced, so users must log in again.
The source lives in app/; the framework is installed under vendor/. The old application/, bundled system/, and root entry point are no longer used. Keep the /Install endpoint restricted to operators in production, and configure SMTP to deliver low-credit notifications.
# Isolated regression checks; requires the sqlite3 extension
docker compose exec -T php-fpm composer test
# Browser checks against the running MariaDB-backed application
npx cypress run --record falseThe regression checks use an in-memory database and do not modify application data. Cypress uses the running application and creates test users; run it against a development database.
For development purposes, an extended Docker Compose configuration is available in docker-compose.dev.yml. This configuration adds additional services useful for development:
- phpMyAdmin: Web interface for database management
- Available at: http://localhost:8081
To start all services including development tools:
docker compose -f docker-compose.dev.yml up -dThis will start all base services plus the development services.
By default, the database is populated with one admin user with username adminand password admin312. Login as this user and change the password as soon as possible.
Afterwards, use the admin user to create new users, which can be done in the backend. When creating new users, make sure that the userrole is enabled*, otherwise they won't be able to use the application.
*The admin user doesn't have the user role by default, hence the "Insufficient rights" message when you first logged in. Obviously you can add the admin user to the usergroup, however it is recommended to keep the admin user merely as an admin.
Set app.defaultLocale = en or app.defaultLocale = nl in .env. Frontend translations are in app/Language/<locale>/Lisa.php; administrator translations are in Admin.php. The existing default, application, and custom dictionaries have been combined into these files.
Thanks goes to these wonderful people (emoji key):
Adriaan Knapen 🚧 🎨 🐛 💻 🖋 🌍 |
Djamon Staal 🛡️ 🚇 |
Koen 🚇 🤔 📓 🐛 |
Timo 💻 🚧 |
Patrick Hilhorst 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!
