Skip to content

xconfess is an anonymous confession platform with messaging, reactions, and high security

License

Notifications You must be signed in to change notification settings

Dataguru-tech/Xconfess

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

428 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

xConfess

xConfess Banner MIT License Stellar Soroban

A privacy-first anonymous confession platform leveraging Stellar blockchain for immutability, transparency, and trustless verification.

๐Ÿ’ฌ Community โ€ข ๐Ÿ› Report Bug


๐ŸŒŸ What is xConfess?

xConfess is an anonymous confession platform where users can share their thoughts, react to confessions, and engage privatelyโ€”all while maintaining complete anonymity. By integrating Stellar blockchain technology, we ensure confessions are verifiable, immutable, and censorship-resistant.

โœจ Feature Matrix

Feature Status Notes
๐Ÿ” Anonymous Confession Posting โœ… Implemented Core module with full CRUD
๐ŸŽญ Anonymous User Identity โœ… Implemented Session-based anonymous users
๐Ÿ˜‚ Emoji Reactions โœ… Implemented Reaction module with WebSocket support
๐Ÿ’ฌ Commenting System โœ… Implemented Nested comments with parent-child
๐Ÿ” Search (Hybrid + Full-text) โœ… Implemented Encrypted search support
๐Ÿ›ก๏ธ AI Content Moderation โœ… Implemented OpenAI-based moderation pipeline
๐Ÿ“Š Admin Dashboard & RBAC โœ… Implemented Role-based access control
๐Ÿ“ Report System โœ… Implemented Report + moderation workflow
๐Ÿ“จ Anonymous Messaging โœ… Implemented Author-reply model with constraints
โ›“๏ธ Confession Anchoring (Stellar) โœ… Implemented Hash anchoring on Stellar testnet
๐Ÿท๏ธ Tag System โœ… Implemented Multi-tag confessions
๐Ÿ”’ Encryption โœ… Implemented Field-level confession encryption
๐Ÿ“‹ Audit Logging โœ… Implemented Comprehensive audit trail
๐Ÿ’ฐ XLM Tipping โœ… Implemented Stellar-based micro-tipping
๐Ÿ“ˆ Analytics โœ… Implemented View counts, trending
๐Ÿ“ฆ Data Export โœ… Implemented User data export
๐Ÿ”„ Real-time Updates โœ… Implemented WebSocket gateway
๐ŸŽจ Frontend (Next.js) โœ… Implemented App router with modern UI
๐Ÿ† NFT Badge System ๐Ÿ—บ๏ธ Roadmap Soroban contract placeholder exists
๐Ÿ“ฑ Mobile App ๐Ÿ—บ๏ธ Roadmap Not started
๐ŸŒ Multi-language Support ๐Ÿ—บ๏ธ Roadmap Not started
๐Ÿ›๏ธ Community Governance ๐Ÿ—บ๏ธ Roadmap Not started

๐Ÿ› ๏ธ Tech Stack

Backend (xconfess-backend)

  • NestJS: Robust, scalable Node.js framework
  • PostgreSQL: Reliable relational database with JSONB support
  • TypeORM: Database ORM with migrations
  • WebSockets: Real-time communication (Socket.IO)
  • JWT + Passport: Secure session management
  • Redis/In-memory Cache: Response caching
  • Swagger/OpenAPI: API documentation

Frontend (xconfess-frontend)

  • Next.js 14: React framework with App Router
  • TailwindCSS: Utility-first styling
  • Stellar SDK: Blockchain interactions

Blockchain (xconfess-contracts)

  • Soroban: Stellar smart contract platform
  • Rust: Smart contract development language
  • Stellar SDK: JavaScript/TypeScript integration

๐Ÿ“ Project Structure

xconfess/
โ”œโ”€โ”€ README.md                    # This file
โ”œโ”€โ”€ package.json                 # Root workspace config
โ”œโ”€โ”€ PERFORMANCE_RESULTS.md       # Benchmark results
โ”œโ”€โ”€ PERFORMANCE_BASELINE.md      # Performance baselines
โ”œโ”€โ”€ PERFORMANCE_GUIDELINES.md    # Performance guidelines
โ”‚
โ”œโ”€โ”€ xconfess-backend/            # NestJS backend
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ main.ts              # App bootstrap
โ”‚   โ”‚   โ”œโ”€โ”€ app.module.ts        # Root module
โ”‚   โ”‚   โ”œโ”€โ”€ auth/                # Authentication (JWT, guards)
โ”‚   โ”‚   โ”œโ”€โ”€ user/                # User management
โ”‚   โ”‚   โ”œโ”€โ”€ confession/          # Confession CRUD + tags
โ”‚   โ”‚   โ”œโ”€โ”€ reaction/            # Emoji reactions
โ”‚   โ”‚   โ”œโ”€โ”€ comment/             # Comments
โ”‚   โ”‚   โ”œโ”€โ”€ messages/            # Anonymous messaging
โ”‚   โ”‚   โ”œโ”€โ”€ report/              # Report system
โ”‚   โ”‚   โ”œโ”€โ”€ admin/               # Admin panel + RBAC
โ”‚   โ”‚   โ”œโ”€โ”€ moderation/          # AI content moderation
โ”‚   โ”‚   โ”œโ”€โ”€ audit-log/           # Audit logging
โ”‚   โ”‚   โ”œโ”€โ”€ logger/              # Structured logging
โ”‚   โ”‚   โ”œโ”€โ”€ middleware/          # Express middleware
โ”‚   โ”‚   โ”œโ”€โ”€ stellar/             # Stellar blockchain integration
โ”‚   โ”‚   โ”œโ”€โ”€ tipping/             # XLM micro-tipping
โ”‚   โ”‚   โ”œโ”€โ”€ encryption/          # Field-level encryption
โ”‚   โ”‚   โ”œโ”€โ”€ cache/               # Cache service
โ”‚   โ”‚   โ”œโ”€โ”€ analytics/           # Analytics module
โ”‚   โ”‚   โ”œโ”€โ”€ data-export/         # Data export
โ”‚   โ”‚   โ”œโ”€โ”€ notifications/       # Notification system
โ”‚   โ”‚   โ”œโ”€โ”€ websocket/           # WebSocket gateway
โ”‚   โ”‚   โ””โ”€โ”€ config/              # Configuration
โ”‚   โ”œโ”€โ”€ test/                    # E2E tests
โ”‚   โ”œโ”€โ”€ e2e/                     # Additional E2E tests
โ”‚   โ””โ”€โ”€ migrations/              # Database migrations
โ”‚
โ”œโ”€โ”€ xconfess-frontend/           # Next.js frontend
โ”‚   โ””โ”€โ”€ src/
โ”‚       โ”œโ”€โ”€ app/                 # App router pages
โ”‚       โ”œโ”€โ”€ components/          # React components
โ”‚       โ””โ”€โ”€ lib/                 # Utilities
โ”‚
โ”œโ”€โ”€ xconfess-contracts/          # Soroban smart contracts
โ”‚   โ”œโ”€โ”€ Cargo.toml               # Workspace config
โ”‚   โ””โ”€โ”€ contracts/
โ”‚       โ”œโ”€โ”€ confession-anchor/   # โœ… Confession hash anchoring
โ”‚       โ”œโ”€โ”€ reputation-badges/   # ๐Ÿ—บ๏ธ NFT badges (placeholder)
โ”‚       โ””โ”€โ”€ anonymous-tipping/   # ๐Ÿ—บ๏ธ On-chain tipping (placeholder)
โ”‚
โ”œโ”€โ”€ docs/                        # Additional documentation
โ”œโ”€โ”€ scripts/                     # Build/deploy scripts
โ””โ”€โ”€ deployments/                 # Deployment configs

โš™๏ธ Installation

Prerequisites

  • Node.js (v18+)
  • PostgreSQL (v14+)
  • pnpm or npm
  • Rust (for Soroban contract development)
  • Stellar CLI (optional, for contract deployment)

Quick Start

  1. Clone the repository

    git clone https://github.com/Godsmiracle001/xconfess.git
    cd xconfess
  2. Install backend dependencies

    cd xconfess-backend
    npm install
  3. Install frontend dependencies

    cd ../xconfess-frontend
    npm install
  4. Set up environment variables

    Create a .env file in xconfess-backend (see .env.example):

    DATABASE_URL=postgresql://username:password@localhost:5432/xconfess
    JWT_SECRET=your-super-secret-jwt-key
    PORT=5000
    
    # Stellar Configuration
    STELLAR_NETWORK=testnet
    STELLAR_HORIZON_URL=https://horizon-testnet.stellar.org
    CONFESSION_ANCHOR_CONTRACT=<contract-id>
  5. Set up the database

    cd xconfess-backend
    npm run migration:run
  6. Start the backend

    npm run start:dev
  7. Start the frontend (in a new terminal)

    cd xconfess-frontend
    npm run dev
  8. Access the application


๐Ÿ”— Stellar Smart Contracts

Quick Start

# 1. Install Stellar CLI
cargo install --locked stellar-cli --features opt

# 2. Add WebAssembly target
rustup target add wasm32-unknown-unknown

# 3. Navigate to contracts
cd xconfess-contracts

# 4. Build contracts
cargo build --release --target wasm32-unknown-unknown

# 5. Run tests
cargo test

Contract Architecture

The xconfess-contracts/ workspace contains Soroban smart contracts:

Contract Status Description
confession-anchor โœ… Implemented Stores 32-byte confession hashes on-chain with timestamps
reputation-badges ๐Ÿ—บ๏ธ Placeholder NFT badge system (contract scaffolded, logic pending)
anonymous-tipping ๐Ÿ—บ๏ธ Placeholder On-chain tipping (contract scaffolded, logic pending)

Contract Interaction Examples

Anchor a Confession (JavaScript)

import * as StellarSDK from '@stellar/stellar-sdk';

const contract = new StellarSDK.Contract(CONFESSION_ANCHOR_CONTRACT_ID);

// Create confession hash
const confessionHash = hashConfession(confessionText);

// Anchor on Stellar
const tx = await contract.call(
  'anchor_confession',
  StellarSDK.nativeToScVal(confessionHash, { type: 'bytes' }),
  StellarSDK.nativeToScVal(Date.now(), { type: 'u64' })
);

Verify a Confession (JavaScript)

const timestamp = await contract.call(
  'verify_confession',
  StellarSDK.nativeToScVal(confessionHash, { type: 'bytes' })
);

โšก Performance

xConfess is optimized for speed and scalability. See our Performance Results for detailed metrics.

Key Metrics

Metric Value Status
API Response Time < 100ms avg โœ…
Page Load Time < 2s โœ…
Lighthouse Score 94/100 โœ…
Database Queries < 100ms โœ…
Cache Hit Rate 82% โœ…

๐Ÿ“Š Full Report: PERFORMANCE_RESULTS.md


๐Ÿค Contributing

We welcome contributions from the community! xConfess is participating in the Stellar Wave Program ๐ŸŒŠ

How to Contribute

  1. Find an Issue

    • Browse open issues
    • Look for good first issue, help wanted, or Stellar Wave labels
    • Comment to get assigned
  2. Fork & Branch

    git checkout -b feat/your-feature-name
  3. Make Your Changes

    • Write clean, tested code
    • Follow existing code style
    • Update documentation if needed
  4. Commit & Push

    git commit -m "feat: add stellar wallet connection"
    git push origin feat/your-feature-name
  5. Submit a Pull Request

    • Include Closes #<issue-number> in description
    • Fill out the PR template
    • Wait for review

๐Ÿ“‹ Contribution Guidelines

โœ… Before Submitting:

  • Join our Telegram community
  • Get assigned to the issue first
  • Ensure all tests pass
  • Update documentation

โœ… Code Quality:

  • Write unit tests for new features
  • Follow TypeScript/Rust best practices
  • Use meaningful variable names
  • Comment complex logic

โœ… Commit Messages:

  • Use conventional commits: feat:, fix:, docs:, refactor:
  • Keep messages clear and concise
  • Reference issue numbers

๐ŸŒŠ Stellar Wave Program

xConfess is proud to participate in the Stellar Development Foundation's Wave Program!

How to Participate

  1. Browse Wave Issues: Look for issues tagged with Stellar Wave
  2. Apply to Work: Comment on the issue to express interest
  3. Get Assigned: Maintainers will review and assign you
  4. Submit Quality Work: Create a PR that meets acceptance criteria
  5. Earn Rewards: Get points and rewards from the Stellar Development Foundation

Wave Resources


๐Ÿ—บ๏ธ Roadmap

โœ… Phase 1: Core Platform (Complete)

  • Anonymous confession posting with encryption
  • Emoji reactions with WebSocket updates
  • Commenting system
  • Anonymous messaging (author-reply model)
  • AI content moderation
  • Admin dashboard with RBAC
  • Report system
  • Tag system
  • Search (hybrid + full-text)
  • Audit logging
  • Data export

โœ… Phase 2: Stellar Integration (Complete)

  • Soroban confession-anchor contract
  • Backend anchoring + verification endpoints
  • XLM tipping module
  • Stellar service integration
  • Freighter wallet frontend integration (in progress)

๐Ÿšง Phase 3: Advanced Features (Q2 2026)

  • NFT badge system (Soroban contract)
  • E2E encrypted messaging upgrade
  • Advanced analytics dashboard
  • Content recommendation engine
  • Mobile app (React Native)

๐Ÿ”ฎ Phase 4: Mainnet & Scale (Q3 2026)

  • Deploy to Stellar Mainnet
  • Community governance
  • Multi-language support
  • Premium features

๐Ÿ“Š Statistics

  • ๐Ÿš€ Contributors: 10+
  • โญ GitHub Stars: Growing daily
  • ๐Ÿ”ง Open Issues: View Issues
  • ๐Ÿ“ฆ Pull Requests: View PRs

๐Ÿค Community & Support

Join the Conversation

Get Help


๐Ÿ“œ License

This project is licensed under the MIT License. See LICENSE for details.


๐Ÿ™ Acknowledgments

  • Stellar Development Foundation for supporting this project through the Wave Program
  • All our amazing contributors and community members
  • The Soroban team for excellent smart contract tooling

๐ŸŒŸ Star History

If you find xConfess valuable, please give us a โญ on GitHub!

Star History Chart


Built with โค๏ธ for the Stellar ecosystem

Community โ€ข Contribute

About

xconfess is an anonymous confession platform with messaging, reactions, and high security

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 95.6%
  • Rust 2.5%
  • Shell 1.2%
  • Other 0.7%