Mikane is a tool designed for calculating payments to settle shared expenses from group trips, parties, and similar activities. Whether you're on a trip, hosting a party, or sharing a flat, this application helps in managing and tracking shared expenses efficiently.
- Event Management: Create and manage events, view a summary of all expenses.
- Expense Tracking: Add, edit, and delete expenses; categorize and attribute them to categories.
- User Management: Invite users to join events, create and manage guests for people without users.
- Optimized Payments: Dynamically calculates minimal transactions to settle expenses efficiently.
- Mobile Support: Full mobile support with a responsive design and PWA capabilities for a seamless experience on any device.
- Authentication: Secure login and registration of users.
- Notifications: Send email notifications for event activities and updates.
- Node.js 24.x
- PostgreSQL 15+ (backend setup - option A)
- Docker (backend setup - option B)
Clone the repository:
git clone https://github.com/pudding-tech/mikane.git
cd mikane-
Install dependencies for the frontend:
cd app/mikane npm install -
Run the frontend application:
npm run dev
Option A:
-
Set up a PostgreSQL database, then run
db_schema.sqland all functions in thedb_scriptsfolder against it. -
Create a
.envfile and populate the required variables. -
Install dependencies for the backend:
cd server npm install -
Run the backend server:
npm run dev
Option B:
Use this method if you only want to work with the frontend (a database will be automatically set up, and the backend will be non-editable).
-
Create a
.envfile and populate the required variables:- Add
POSTGRES_USERandPOSTGRES_PASSWORDto the.envfile to be used for the database setup, and ensure these values are reflected in theDB_USERandDB_PASSWORDvariables, respectively. - The remaining database variables should be set as follows:
DB_HOST=db,DB_PORT=5432, andDB_DATABASE=mikane.
- Add
-
Run the backend server, which will automatically create and connect to a ready-to-use database:
cd server docker compose up
- Open your browser and navigate to
http://localhost:4200. - Register new accounts at
http://localhost:4200/register/u, or log in with existing credentials. - Create an event and start adding participants and expenses.
The API documentation, following the OpenAPI specification, is available at http://localhost:3002.
To run frontend tests:
cd app/mikane
npm run testThe backend has integration tests that require a database to function. However, this is automatically set up through Docker with the npm run db command below, so no additional actions are needed.
To run backend tests:
cd server
npm run db
npm run testIf you want to contribute to Mikane, please fork the repository and submit a pull request. While this tool is mainly an in-house Puddingtech project, we are open to contributions from the community.
Mikane is licensed under the GPL-3.0 License - see the License for more information.