Skip to content

Gatheraa/Gatherraa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

565 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gathera

Open-source infrastructure for Web3 events and conferences.

License: MIT Built with Rust Stellar NestJS Next.js

Overview

Gathera is a comprehensive, open-source platform designed to power Web3 events and conferences on the Stellar blockchain. It combines Soroban smart contract-based ticketing, decentralized identity verification, and seamless event management to create a trustless, transparent ecosystem for organizers and attendees.

Features

  • Blockchain Ticketing: Soroban-powered NFT tickets with anti-scalping mechanisms
  • Decentralized Identity: Stellar-based identity verification for attendees
  • Event Management: Full-featured dashboard for organizers
  • Fast Finality: 5-second transaction finality on Stellar
  • Soroban Integration: Rust-based smart contracts with WebAssembly execution

Architecture

Gathera/
├── app/
│   ├── backend/          # NestJS API server
│   └── frontend/         # Next.js 16 + React 19 application
├── contract/             # Smart contracts (Rust/Soroban)
│   ├── contracts/        # Rust smart contract source
│   ├── scripts/          # Deployment and utility scripts
│   └── test/             # Contract test suites

Tech Stack

Smart Contracts

  • Platform: Stellar Soroban
  • Language: Rust (compiles to WebAssembly)
  • SDK: Soroban Rust SDK
  • Testing: Soroban CLI + Rust test framework
  • Deployment: Soroban CLI

Backend

  • Framework: NestJS 11
  • Language: TypeScript 5.7
  • Testing: Jest 30
  • API: RESTful + GraphQL ready

Frontend

  • Framework: Next.js 16 (App Router)
  • UI Library: React 19
  • Styling: Tailwind CSS 4
  • Font: Geist (Vercel)

Getting Started

Prerequisites

  • Node.js 20.0.0+
  • npm 10+
  • Rust 1.74+
  • Soroban CLI

Environment Setup

Before running the project, copy the example environment files and configure them for your environment:

# Root environment variables
cp .env.example .env

# Backend environment variables
cp app/backend/.env.example app/backend/.env

# Frontend environment variables
cp app/frontend/.env.example app/frontend/.env.local

# Image service environment variables
cp app/image-service/.env.example app/image-service/.env

Edit each .env file and fill in the required values. See the comments in each .env.example file for details on each variable.

Installation

# Clone the repository
git clone https://github.com/Gatheraa/Gathera.git
cd Gathera

# Install all workspace dependencies from the repository root
npm install

# Optional: install dependencies per package
cd contract && npm install
cd ../app/backend && npm install
cd ../frontend && npm install

Workspace commands

  • npm run install - install all workspace dependencies from the root lockfile
  • npm run build - build all workspace packages and compile contracts
  • npm run lint - lint all workspace packages
  • npm run format - format all workspace packages with available workspace format scripts
  • npm run test - run backend, integration, and contract tests
  • npm run clean - remove workspace install artifacts
  • npm run workspace:status - list workspace packages

Package-specific workspace commands:

  • npm run format:backend / npm run format:frontend - run formatting in named workspace packages
  • npm run test:integration - run integration tests defined in tests/integration

This repository includes root-level formatting and linting configuration: .editorconfig, .prettierrc, .eslintrc.json, .eslintignore, and .prettierignore. Run npm run install from the repository root and avoid running package installs from individual subfolders unless you need package-specific dependency changes.

Running the Development Environment

Smart Contracts:

cd contract
# Build contracts
cargo build --target wasm32-unknown-unknown --release

# Test contracts
cargo test

# Deploy to testnet
soroban contract deploy --wasm target/wasm32-unknown-unknown/release/[contract].wasm --source [key] --network testnet

Backend:

cd app/backend
npm run start:dev

Frontend:

cd app/frontend
npm run dev

Development

Contract Development

The smart contracts are written in Rust for Stellar Soroban, compiling to WebAssembly for efficient execution on the Stellar network.

cd contract
# Build all contracts
cargo build --target wasm32-unknown-unknown --release

# Run tests
cargo test

# Deploy to futurenet
soroban contract deploy \
  --wasm target/wasm32-unknown-unknown/release/gathera_event.wasm \
  --source [your_key] \
  --network futurenet

# Invoke contract function
soroban contract invoke \
  --id [contract_id] \
  --source [your_key] \
  --network futurenet \
  -- \
  create_event \
  --organizer [address] \
  --name "Event Name"

Backend Development

The NestJS backend provides RESTful APIs for event management, user authentication, and blockchain interactions.

cd app/backend
# Development mode
npm run start:dev

# Production build
npm run build
npm run start:prod

# Run tests
npm run test
npm run test:e2e

Frontend Development

The Next.js frontend offers a modern, responsive UI for event discovery, ticket purchasing, and attendee management.

cd app/frontend
# Development server
npm run dev

# Production build
npm run build
npm run start

Contributing

We welcome contributions from the community! Please see our Contributing Guidelines for details.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Resources and Documentation

Community

Acknowledgments

About

Smart-contract for Gathera — open-source infrastructure for Web3 events and conferences.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors