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.
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.
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.
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.
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.
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 — Runtime Environment
-
TypeScript — Languages
-
Nx — Monorepo & Build System -
GitHub Actions — Continuous Integration
-
Vitest — Testing Framework
-
OpenAI — Large Language Models
-
Docker — Virtual Machine Platforms & Containers
Full tech stack here
For more information on contributing, please read the [contributing guidelines].
-
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:
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.
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.
If you prefer to set up locally without containers:
-
Clone the repository:
git clone https://github.com/Eventiva/eventiva.git cd eventiva -
Install dependencies:
pnpm install
-
Build all packages:
pnpm nx run-many -t build
-
Run linting:
pnpm nx run-many -t lint
-
Run type checking:
pnpm nx run-many -t typecheck
-
Run tests:
pnpm nx run-many -t test
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.
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 <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.