Skip to content

ShadowInCache/SkillTimeBank

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

10 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Community TimeBank โฐ

Trade skills with TimeCredits โ€” 1 TC = 1 hour

A Reddit-native skill exchange platform built with Devvit Web Interactive Posts for the Community Games Challenge. Help your community, earn credits, and build reputationโ€”all within Reddit.

๐Ÿ† Tagged for: Best Kiro Developer Experience Award

โœจ Features

Core Functionality

  • โœ… Time Credits Economy: Local currency where 1 TC = 1 hour of work
  • โœ… Gig Marketplace: Post requests for help or offer your skills
  • โœ… Dual Confirmation: Both parties must confirm before payment settles
  • โœ… Transaction History: Complete audit trail of all credit transfers
  • โœ… Reputation System: Build trust through completed gigs

Community Play (Massively Multiplayer)

  • ๐Ÿƒ Weekly Skill Swap Sprints: Cooperative community goals with rewards
  • ๐Ÿ† Real-Time Leaderboards: Top Helpers, Fastest Responders, Most Versatile
  • ๐Ÿ“Š Community Analytics: Track gigs completed, active participants, avg time-to-match
  • ๐Ÿ’ฌ Comment Prompts: Reddit-y engagement features
  • โญ Seasonal Rankings: Quarterly resets for fresh competition

Safety & Moderation

  • ๐Ÿ›ก๏ธ Rate Limits: Configurable per trust level (New/Trusted/Veteran)
  • โš–๏ธ Dispute Workflow: 24-hour dispute window with escrow holds
  • ๐Ÿ‘ฎ Mod Panel: Freeze users, award credits, resolve disputes
  • ๐Ÿ“ Audit Log: Immutable record of all moderator actions
  • ๐Ÿ”’ Minimum Reputation: Prevent spam from new accounts

UX & Polish

  • ๐ŸŽจ Custom Splash Screen: Onboarding with 3 clear CTAs
  • โšก Optimistic UI: Instant feedback, smooth interactions
  • ๐Ÿ’€ Skeleton States: Loading placeholders for better perceived performance
  • โ™ฟ Accessibility: Keyboard navigation, ARIA labels, high contrast option
  • ๐Ÿ“ฑ Responsive: Desktop-first (for judging) with mobile support

Kiro Developer Experience

  • ๐Ÿ“‹ 6 Domain Specs: Requirements-driven development in .kiro/specs/
  • ๐Ÿ”ง Code Generation: Auto-generate services, types, and tests
  • ๐ŸŽฏ Steering Orchestration: Declarative workflow automation
  • โฑ๏ธ ~1,050 lines saved: Quantified boilerplate reduction
  • ๐Ÿ“š 5 Reusable Patterns: Documented for community adoption

๐Ÿš€ Quick Start

Development

# Install dependencies
npm install

# Run local playtest
npm run dev:run

# Upload to Reddit
npm run dev:upload

# Run tests
npm test

# Type check
npm run typecheck

Kiro Workflow

# Generate service scaffolds from specs
npm run kiro:generate-services

# Generate types from requirements
npm run kiro:generate-types

# Sync test scaffolds
npm run kiro:sync-tests

# Regenerate admin documentation
npm run kiro:regen-admin-docs

Admin Tools

# Award time credits to users
npm run admin:award-credit -- --username "alice" --amount 50 --reason "Great contribution"

# Ban/freeze abusive users
npm run admin:ban-user -- --username "spammer" --reason "Repeated spam"

# Reset economy (emergency only)
npm run admin:reset-economy

Demo & Submission

# Create demo post with seed data
npm run demo:create-post

# Print submission assets for Devpost
npm run submit:assets

๐Ÿ“ Project Structure

SkillTimeBank/
โ”œโ”€โ”€ .kiro/                      # Kiro specs, hooks & steering
โ”‚   โ”œโ”€โ”€ specs/                  # Domain requirements (6 specs)
โ”‚   โ”‚   โ”œโ”€โ”€ gig-lifecycle/
โ”‚   โ”‚   โ”œโ”€โ”€ timecredits-economy/
โ”‚   โ”‚   โ”œโ”€โ”€ weekly-events/
โ”‚   โ”‚   โ”œโ”€โ”€ leaderboards/
โ”‚   โ”‚   โ”œโ”€โ”€ moderation-trust/
โ”‚   โ”‚   โ””โ”€โ”€ first-screen/
โ”‚   โ”œโ”€โ”€ hooks/                  # Code generation scripts
โ”‚   โ”‚   โ”œโ”€โ”€ generate-services.kiro.ts
โ”‚   โ”‚   โ””โ”€โ”€ ...
โ”‚   โ””โ”€โ”€ steering/               # Workflow orchestration
โ”‚       โ””โ”€โ”€ gig-lifecycle-orchestration.md
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ main.tsx                # Devvit entry point
โ”‚   โ”œโ”€โ”€ app/
โ”‚   โ”‚   โ””โ”€โ”€ App.tsx             # Main app component
โ”‚   โ”œโ”€โ”€ components/             # UI components
โ”‚   โ”‚   โ”œโ”€โ”€ EnhancedSplashScreen.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ WeeklyEventCard.tsx
โ”‚   โ”‚   โ”œโ”€โ”€ LeaderboardDisplay.tsx
โ”‚   โ”‚   โ””โ”€โ”€ ...
โ”‚   โ”œโ”€โ”€ services/               # Business logic
โ”‚   โ”‚   โ”œโ”€โ”€ gigService.ts
โ”‚   โ”‚   โ”œโ”€โ”€ userService.ts
โ”‚   โ”‚   โ”œโ”€โ”€ eventService.ts
โ”‚   โ”‚   โ”œโ”€โ”€ leaderboardService.ts
โ”‚   โ”‚   โ””โ”€โ”€ moderationService.ts
โ”‚   โ”œโ”€โ”€ state/                  # State management
โ”‚   โ”‚   โ””โ”€โ”€ timebank.ts
โ”‚   โ”œโ”€โ”€ types/                  # TypeScript types
โ”‚   โ”‚   โ”œโ”€โ”€ gig.ts
โ”‚   โ”‚   โ”œโ”€โ”€ user.ts
โ”‚   โ”‚   โ”œโ”€โ”€ event.ts
โ”‚   โ”‚   โ”œโ”€โ”€ leaderboard.ts
โ”‚   โ”‚   โ””โ”€โ”€ moderation.ts
โ”‚   โ””โ”€โ”€ scripts/                # Admin utilities
โ”‚       โ”œโ”€โ”€ award-credit.ts
โ”‚       โ”œโ”€โ”€ ban-user.ts
โ”‚       โ””โ”€โ”€ reset-economy.ts
โ”œโ”€โ”€ scripts/                    # Build & demo scripts
โ”‚   โ”œโ”€โ”€ create-demo-post.ts
โ”‚   โ””โ”€โ”€ submit-assets.ts
โ”œโ”€โ”€ docs/
โ”‚   โ”œโ”€โ”€ APP_LISTING.md          # Full app documentation
โ”‚   โ”œโ”€โ”€ KIRO_EXPERIENCE.md      # Kiro metrics & patterns
โ”‚   โ””โ”€โ”€ ADMIN_TOOLKIT.md        # Moderator guide
โ”œโ”€โ”€ tests/                      # Vitest test suite
โ”‚   โ”œโ”€โ”€ timebank.test.ts
โ”‚   โ”œโ”€โ”€ integration.test.ts
โ”‚   โ””โ”€โ”€ gig-edge-cases.test.ts
โ””โ”€โ”€ devvit.yaml                 # Devvit configuration

๐Ÿ“– Documentation

๐Ÿ› ๏ธ Technologies

  • Devvit Web: Reddit's custom post framework
  • TypeScript: Type-safe development
  • Vitest: Fast unit testing
  • Tailwind CSS: Utility-first styling (PostCSS)
  • Kiro: Code generation & requirements-driven development

๐Ÿ† Kiro Highlights

Specs-First Development

Every feature starts with a requirements document in .kiro/specs/. Example:

**User Story:** As a community member, I want to accept available gigs

**Acceptance Criteria:**
1. WHEN a user attempts to accept a gig, THE system SHALL verify user is not the poster
2. IF a user attempts to accept their own gig, THEN THE system SHALL prevent acceptance

Code Generation

Run npm run kiro:generate-services to scaffold services from specs:

// Auto-generated with error handling
export class GigService {
  static acceptGig(
    state: TimebankState,
    gigId: string,
    userId: string
  ): { success: boolean; newState?: TimebankState; error?: string } {
    try {
      // Implement from spec acceptance criteria
    } catch (error) {
      return { success: false, error: 'Failed to accept gig' };
    }
  }
}

Metrics

  • ~1,050 lines of boilerplate avoided
  • ~4 hours saved per feature iteration
  • 5 reusable patterns documented for community

See KIRO_EXPERIENCE.md for full details.

๐ŸŽฎ Community Games Challenge

This project is built for the Reddit Community Games Challenge with focus on:

โœ… Devvit Web + Interactive Posts (desktop-first, fast, self-explanatory)
โœ… Delightful UX (custom splash, onboarding, smooth performance)
โœ… Community Play (weekly sprints, leaderboards, cooperative goals)
โœ… Reddit-y Feel (comment prompts, native to Reddit)
โœ… Moderation Tools (disputes, freezes, audit logs)
โœ… Kiro Developer Experience (specs, generation, patterns)

Judging Criteria Coverage

Criterion Implementation
Delightful UX Custom splash, skeleton states, optimistic UI
Community Play Weekly sprints, leaderboards, analytics
Polish Responsive, accessible, keyboard nav
Reddit-y Comment integration, native feel
Desktop Performance Lazy loading, caching, <2s load

๐Ÿ“œ License

MIT License - Fully open source

๐ŸŽฏ Submission

๐Ÿ† Awards Targeted:

  • Best Kiro Developer Experience (primary)
  • Community Games Challenge (general)

๐Ÿ“‹ Submission Assets:

Run npm run submit:assets for Devpost-ready links.

๐Ÿค Contributing

Contributions welcome! This project demonstrates patterns that can be reused:

  • .kiro/ structure for your own projects
  • Service patterns for Devvit apps
  • State management for complex Reddit apps
  • Testing strategies for interactive posts

๐Ÿ“ง Contact


Built with โค๏ธ for the Reddit Community Games Challenge

About

An interactive Reddit app where community members trade skills and favors. The only currency is time, not money

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors