Skip to content
ResnovasPublic

About

Envision a future with effortless event planning and management

Resources

Code of conduct

Contributing

Security policy

Stars

11 stars

Watchers

0 watching

Forks

Latest commit

 

History

380 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EVENTIVA

Open in GitHub Codespaces
Important
This project is in pre-alpha state. Code here is subject to massive change and is likely unstable. Only install if you know what you are doing.

Introduction

Welcome to the Eventiva repository. Eventiva is an open-source platform for Event Planning and Production logistics. We have created a custom-built directory focused on indexing, marketing and connecting event specialist Vendors, Venues and professionals. We then connected this to our innovative tools for event production planning which include scheduling, itinerary, task management, contact management, warehousing ticket sales, interactive site maps, online and in-person sales solutions, accounting, payroll and human resources.

Why do we exist?

When surveyed, the industry revealed that over fifty-five percent of events did not have a management tool of any form. The remaining forty percent are split across solutions designed and implemented for office environments. Software like Flock and Excel barely cover the toolset which managers require to be effective in the preproduction sections of their work. While fifty-five percent of events did not have management tools, a full eighty percent of individuals surveyed believed that schedulers, task lists and other management tools would be helpful to their ongoing operations.

What is Eventiva Gaming

Eventiva Gaming is born out of the desire to create the best tools for our industry. While gaming is an unusual route, we believe that the gaming industry, specifically role play communities, is a perfect fit for testing, developing and improving our tools. Within the Role Play Communities, there are may teams which need to coordinate, manage and plan digital events with the exact same requirements as physical events. We believe that by working with these communities we can create a better product for everyone.

For instance, the Eventiva Gaming team developed the initial version of the Fleet Management module. They designed it to manage the distribution, maintainance and deployment of vehicles within Emergency Service role play. Those same key features are now being used to manage the distribution, maintainance and deployment of vehicles within the events industry.

Why open-source?

We believe in the power of community development, while our tools are designed and marketted for event planning, they can be utilised by organisations planning all variations of projects, we believe that through keeping our tools open-source we can connect with amazing developers who can contribute in ways we simply cannot fathom.

How to get support 👨‍👩‍👧‍👦

For Features Requests, Q&A, Show & Tell and Discussions please use our discussion page 🚑.

We have a FAQ label in our discussion page where you can get quick answers, help with debugging weird issues, and general help.

Our extensive documentation can be found at here.

Contributing

Thank you for taking an interest in contributing. We have created development containers (.devcontainer) to allow you to jump straight in with coding. Everything is configured and ready to go, all you need to do is use one of the supported platforms: VSCode

This project utilises the Smartcloud Project to automate our workflow, alongside provide templates for issues and pull requests. If you want to learn more about precisely what this workflow accomplishes, please check out the documentation here.

Eventiva is built on the following main stack:

  • Node.js Node.js — Runtime Environment

  • TypeScript TypeScript — Languages

  • Nx Nx — Monorepo & Build System

  • GitHub Actions GitHub Actions — Continuous Integration

  • Vitest Vitest — Testing Framework

  • OpenAI OpenAI — Large Language Models

  • Docker Docker — Virtual Machine Platforms & Containers

Full tech stack here

For more information on contributing, please read the [contributing guidelines].

Backlog

You can access our backlog on our JetBrains Space found here:

Running Locally & Developing

Prerequisites

  • Node.js 20 or later

  • pnpm 9.14.2 (or compatible version)

  • Git

You can choose one of the following methods to get your development platform configured:

Open in GitHub Codespaces

GitHub Codespaces provides cloud-hosted development environments for any activity - whether it’s a long-term project, or a short-term task like reviewing a pull request. You can connect to Codespaces from Visual Studio Code or a browser-based editor that’s accessible anywhere. Download the VSCode extension here.

Devcontainer Method

The Dev Container lets you use a Docker container as a full-featured development environment. Whether you deploy to containers or not, containers make a great development environment because you can:

  • Develop with a consistent, easily reproducible toolchain on the same operating system you deploy to.

  • Quickly swap between different, separate development environments and safely make updates without worrying about impacting your local machine.

  • Try out new technologies or clone a copy of a code base without impacting your local setup.

Simply install the Dev containers extension, clone the repository to your local device, and choose the Open Devcontainer option.

The devcontainer includes: * Node.js 22 * pnpm 9.14.2 * Nx (installed globally) * PostgreSQL 16 (service postgres, port 5432)

See .devcontainer/README.md for more details.

Local Setup

If you prefer to set up locally without containers:

  1. Clone the repository:

    git clone https://github.com/Eventiva/eventiva.git
    cd eventiva
  2. Install dependencies:

    pnpm install
  3. Build all packages:

    pnpm nx run-many -t build
  4. Run linting:

    pnpm nx run-many -t lint
  5. Run type checking:

    pnpm nx run-many -t typecheck
  6. Run tests:

    pnpm nx run-many -t test

Effect cluster demo: three ways to run

The packaged battleship cluster demo (runner + shooters) can be run locally (single process, in-memory cluster storage), via Docker Compose, or on Kubernetes (FPK). Tooling prerequisites (Node.js, pnpm, Docker/Podman, Compose, kubectl/Kind) and canonical pnpm platform:* scripts are in README.md at the repository root. Full commands, env vars, and log regression checks are in docs/parts/local-dev/three-tier-platform-runtime.md (also linked from docs/readme.md). The same flows are exposed as Nx targets on the root eventiva project (for example pnpm exec nx run eventiva:platform:run:local-fiber).

Tier Typical command

Local (no Kafka hook bus)

pnpm platform:run:local-fiber (or pnpm nx run platforms-postgresql:run:local-fiber)

Docker Compose

pnpm platform:container:images-build then pnpm platform:container:compose-up

Kubernetes (FPK)

pnpm platform:kubernetes:apply / pnpm platform:kubernetes:wait then pnpm cluster:logs:all (aliases: pnpm cluster:apply / pnpm cluster:wait; see postgresql-cluster-runtime.md)

Regression: aggregated logs should eventually contain Boom!, Shooting at, Shot at, and Shots fired: (substring match). For Compose use pnpm exec nx run cluster-tooling:compose-verify-demo-logs after workloads have warmed up; allow extra time for slow-shooter (Shot at follows a long delay).

Run the PostgreSQL platform

The platforms-postgresql Nx project is the main PostgreSQL platform library and cluster entrypoints. The default pnpm dev / pnpm nx run platforms-postgresql:run target streams Kubernetes cluster logs when a cluster is deployed (see postgresql-cluster-runtime.md). For a single-machine demo without K8s, use pnpm nx run platforms-postgresql:run:local-fiber instead (see the table above).

To build the library from the repository root:

pnpm nx run platforms-postgresql:build

Other HTTP / workload entrypoints and ports are documented under packages/platforms/postgresql and database-backends-and-platforms.md.

Environment variables such as EVENTIVA_DATABASE, DATABASE, and database connection settings apply as documented in the platform (packages/platforms/postgresql) and @eventiva/core (backend registry and dialect facades).

Tests Repository

Eventiva uses a separate tests repository (Eventiva/tests) for all test code. This separation ensures that implementation code is written without seeing test expectations, leading to more robust software that satisfies real contracts rather than just passing specific tests.

Important for AI-assisted development: * Never clone or initialize the tests repository when doing implementation work with AI tools. * The tests repository should only be accessed when: * Running tests locally * Writing or reviewing tests * Working in the test-runner devcontainer

For normal development work, keep the tests/ folder unpopulated (or use the development devcontainer which excludes tests). This ensures AI tools don’t use test code as context when implementing features.

See docs/learnings/tdd-and-test-creation.md for the full TDD policy.

Available Nx Commands

This project uses Nx for task orchestration. Common commands:

  • pnpm nx run-many -t build - Build all packages

  • pnpm nx run-many -t lint - Lint all packages

  • pnpm nx run-many -t typecheck - Type check all packages

  • pnpm nx run-many -t test - Run tests for all packages

  • pnpm nx run platforms-postgresql:run:local-fiber - Local colocated cluster demo (single process; CLUSTER_HOOK_BUS=off)

  • npx nx run platforms-postgresql:run - Tail Kubernetes cluster logs when a cluster is deployed (see cluster runtime docs)

  • pnpm nx run <project>:<target> - Run a specific target for a project (e.g., pnpm nx run core:build)

  • pnpm nx graph - Visualize the project dependency graph

For more information about Nx, see nx.dev.

Contributors ✨

Supporters & Sponsors

Sponsored by

Want to help build the next generation of event planning tools? We are looking for sponsors to help us grow and develop our tools.

Supported by

Jetbrains

JetBrains supports the development of this project through Licenses for Open Source Development.

About

Envision a future with effortless event planning and management

Resources

Code of conduct

Contributing

Security policy

Stars

11 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages