Skip to content

oguzhan18/DevAnnounce

Repository files navigation

DevAnnounce - GitHub Project Management with Social Media Automation

DevAnnounce Logo

Automatically announce your GitHub projects on social media!

License: MIT GitHub Stars

🚀 Features

💻 Advanced GitHub Integration

  • Automatic tracking of commits, pushes, releases, and pull requests
  • Repository-based customizable notification settings
  • Real-time updates with webhook support
  • Branch protection rules integration
  • Automated release notes generation

📱 Multi-Platform Social Media Support

  • Automatic sharing on Twitter/X platform
  • LinkedIn company and personal profile integration
  • Mastodon integration
  • Discord webhook support
  • Customizable posting schedules

🎨 Customizable Templates

  • Rich text editor with Markdown support
  • Dynamic content creation with variable support
  • Multi-language support
  • Emoji and hashtag customization
  • Custom branding options

🔒 Security and Privacy

  • Secure authentication with OAuth2.0
  • Role-based access control (RBAC)
  • API token management
  • Comprehensive audit logging
  • Data encryption at rest

🛠️ Technology Stack

Frontend

  • Framework: Next.js 14 with App Router
  • UI Library: React 18
  • Styling: TailwindCSS
  • Components: TailwindCSS/ui
  • State Management: React Query & Zustand
  • Forms: React Hook Form & Zod

Backend

  • Runtime: Node.js
  • API: tRPC & REST
  • Edge Functions: Vercel Edge Runtime
  • WebSocket: Socket.io for real-time features

Infrastructure

  • Database: Supabase (PostgreSQL)
  • Authentication: Supabase Auth
  • Deployment: Vercel
  • CDN: Vercel Edge Network
  • Analytics: PostHog & Axiom

📦 Installation

Prerequisites

  • Node.js 16.x or higher
  • pnpm/npm/yarn
  • Supabase account
  • Social media API keys
  • GitHub OAuth App credentials

Development Environment Setup

  1. Clone the repository:
git clone https://github.com/oguzhan18/DevAnnounce
cd devannounce
  1. Install dependencies:
npm install
  1. Set up environment variables:
cp .env.example .env.local
  1. Initialize database:
npm run db:push
  1. Start development server:
npm run dev

🌐 Environment Variables

# Application
NEXT_PUBLIC_APP_URL=http://localhost:3000
NODE_ENV=development

# Supabase
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key

# Social Media APIs
TWITTER_API_KEY=your_twitter_api_key
TWITTER_API_SECRET=your_twitter_api_secret
LINKEDIN_CLIENT_ID=your_linkedin_client_id
LINKEDIN_CLIENT_SECRET=your_linkedin_client_secret

# Analytics
NEXT_PUBLIC_POSTHOG_KEY=your_posthog_key
NEXT_PUBLIC_AXIOM_TOKEN=your_axiom_token

📊 Database Schema

The database schema is located in schema.sql. Main tables include:

  • users - User profiles and settings
  • github_tokens - GitHub authentication credentials
  • repositories - Tracked repositories and configurations
  • announcement_configs - Announcement templates and rules
  • announcements - Historical announcement records
  • social_accounts - Connected social media accounts
  • audit_logs - System activity logs

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Development Guidelines

  • Write tests for new features
  • Update documentation as needed
  • Follow the established code style
  • Ensure all tests pass before submitting PR

📝 License

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

🌟 Roadmap

Q2 2024

  • GitHub Actions integration
  • Advanced analytics dashboard
  • Multi-language support

Q3 2024

  • Mastodon federation support
  • Team collaboration features
  • Custom webhook integrations

Q4 2024

  • AI-powered content suggestions
  • Advanced scheduling features
  • API marketplace

📞 Contact & Support