Skip to content

frontiertower/frontier-forge

Repository files navigation

Frontier Forge 🏗️

Where Frontier Tower ideas become reality through community collaboration

Frontier Forge is a streamlined voting platform for the Frontier Tower community to propose and prioritize building improvements. Ideas flow through submission → voting → approval → external tracking.

🚀 Features

  • Idea Submission: Community members can submit building improvement ideas
  • Democratic Voting: Upvote system to surface the best proposals
  • Real-time Updates: Server-sent events for live vote counts and new ideas
  • Top Ideas View: See the most voted proposals ready for implementation
  • Tag System: Organize ideas by categories (wellness, equipment, renovation, etc.)
  • Responsive Design: Beautiful UI with micro-interactions and animations

🛠️ Tech Stack

  • Framework: SvelteKit 5 with Svelte runes
  • Database: PostgreSQL with Prisma ORM (Supabase hosted)
  • Styling: Tailwind CSS with custom Frontier Tower design system
  • Authentication: JWT sessions with Frontier Tower OAuth
  • Real-time: Server-Sent Events (SSE)
  • Deployment: Fly.io

🎨 Design System

Frontier Forge implements the Modern Professional Elegance design with:

  • Custom Frontier purple brand colors
  • Smooth micro-interactions and animations
  • Responsive typography and spacing
  • Accessibility-first component design

📦 Installation

# Clone the repository
git clone https://github.com/frontiertower/frontier-forge.git
cd frontier-forge

# Install dependencies
npm install

# Set up environment variables
cp .env.example .env
# Edit .env with your database and auth credentials

# Push database schema
npm run db:push
npm run db:generate

# Start development server
npm run dev

🗂️ Project Structure

frontier-forge/
├── src/
│   ├── routes/          # SvelteKit routes
│   ├── lib/
│   │   ├── components/  # Reusable Svelte components
│   │   ├── server/      # Server-side utilities
│   │   └── stores/      # Client stores (SSE updates)
│   └── app.css          # Global styles and animations
├── prisma/
│   └── schema.prisma    # Database schema
└── static/              # Static assets

🔧 Development Commands

npm run dev          # Start dev server
npm run build        # Build for production
npm run preview      # Preview production build
npm run check        # Type-check Svelte components
npm run db:push      # Push schema to database
npm run db:generate  # Generate Prisma client
npm run db:studio    # Open Prisma Studio

🚢 Deployment

This app is configured for deployment on Fly.io:

# Deploy to Fly.io
flyctl deploy

📝 Environment Variables

Required environment variables:

  • DATABASE_URL: PostgreSQL connection string (with pooler)
  • DIRECT_URL: Direct database connection (for migrations)
  • JWT_SECRET: Secret for JWT tokens (min 32 chars)
  • FRONTIER_CLIENT_ID: OAuth client ID
  • FRONTIER_CLIENT_SECRET: OAuth client secret

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

MIT License - feel free to use this for your own communities!

About

Share & vote on ideas to improve the tower

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published