Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

989 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

AYA Web Sitesi

Discord GitHub issues

(For English please click here)

Açık kaynak yazılımı ve açık kaynak verilerine ortak ilgi duyan bireylerden oluşan sıkı bağlı ve tutkulu bir topluluğuz. Toplumun iyileştirilmesi için teknolojiden yararlanma kararlılığımızla birleşerek, Türkiye'de meydana gelen yıkıcı Şubat 2023 depremi sonrasında güçlerimizi birleştirdik.

Depremin ardından, etkilenenlere destek olma ve aileleri ile sevdiklerini yeniden bir araya getirme sürecine yardım etme acil ihtiyacını fark ettik. Bu amaç doğrultusunda, bireyler arasındaki arama ve bağlantıyı kolaylaştırmayı hedefleyen yenilikçi araçlar ve çözümler geliştirmek için yola çıktık.

Yorulmak bilmeyen iş birliği ve kolektif çabalar sayesinde topluluğumuz ilham verici bir büyüklüğe ulaştı ve 24.000 kişiden oluşan bir topluluk haline geldik. Birlikte, aileleri yeniden bir araya getirmeye, umudu geri kazandırmaya ve depremden etkilenenlere teselli sunmaya yardımcı olmak için teknolojinin gücünden yararlanarak araçlarımızı sürekli olarak geliştiriyoruz ve genişletiyoruz.

İlerlemeye devam ederken, taahhüdümüzden sapmadan devam ediyoruz. Araçlarımızı geliştirmeye, açık kaynak projelere aktif olarak katkıda bulunmaya ve bilgi paylaşımı ve iş birliğinin geliştiği destekleyici bir ortamı teşvik etmeye çalışıyoruz. Açık kaynak topluluğunun bir parçası olmaktan gurur duyuyoruz ve sizlerle olan yolculuğumuza dört gözle devam etmek için sabırsızlanıyoruz.

Görevimiz

Açık kaynak çözümlerini kullanarak, bilgi sistemlerini uygulayarak ve mühendislik uygulamalarını hayata geçirerek, içinde yaşadığımız toplumun iyileştirilmesine aktif olarak katkıda bulunmayı hedefliyoruz. Öncelikli odak noktamız, sosyal sorumluluk ihtiyaçlarını karşılamak ve bu yollarla çeşitli toplumsal zorluklarla baş etmektir. Uzmanlığımızı ve kaynaklarımızı kullanarak, topluluğumuz içinde pozitif bir etki yaratmayı ve sürdürülebilir kalkınmayı teşvik etmeyi amaçlıyoruz.

Teknoloji

Bu bir Docker Compose tabanlı monorepo projesidir. Aşağıdaki bileşenleri içerir:

  • Frontend (webclient): Deno, TanStack Start, Vite ve Shadcn UI kullanır
  • Backend (services): Go dilinde yazılmış REST API servisleri
  • Veritabanı: PostgreSQL

Önceden kurulu olması gerekenler:

  • Docker (Orbstack önerilir)
  • Make (Unix/macOS sistemlerde genellikle yüklüdür)
  • Git

Kurulum ve Başlangıç

GitHub repository'sini klonlayın:

$ git clone git@github.com:eser/aya.is.git
$ cd aya.is

Backend servisi için gerekli ortam değişkenlerini ayarlayın:

# .env.local dosyası oluşturun (bu dosya git'e eklenmez)
$ cat > apps/services/.env.local << EOF
AUTH__JWT_SECRET=herhangi-bir-gizli-anahtar
EOF

Not: AUTH__JWT_SECRET kimlik doğrulama için zorunludur. Geliştirme ortamında herhangi bir değer kullanabilirsiniz.

Telegram Bot (İsteğe Bağlı)

Telegram entegrasyonunu etkinleştirmek için @BotFather üzerinden bir bot oluşturun ve aşağıdaki ortam değişkenlerini ekleyin:

# Geliştirme ortamı (polling modu — public URL gerektirmez)
TELEGRAM__ENABLED=true
TELEGRAM__BOT_TOKEN=<BotFather'dan aldığınız token>
TELEGRAM__BOT_USERNAME=ayabot
TELEGRAM__USE_POLLING=true
WORKERS__TELEGRAM_BOT__ENABLED=true
# Production ortamı (webhook modu)
TELEGRAM__ENABLED=true
TELEGRAM__BOT_TOKEN=<BotFather'dan aldığınız token>
TELEGRAM__BOT_USERNAME=ayabot
TELEGRAM__WEBHOOK_URL=https://api.aya.is/telegram/webhook
TELEGRAM__WEBHOOK_SECRET=<rastgele-gizli-anahtar>

Projeyi başlatmak için Make komutlarını kullanın:

# Tüm servisleri build et ve başlat
$ make up

Diğer kullanışlı Make komutları:

$ make help      # Tüm komutları göster
$ make logs      # Container loglarını göster
$ make stop      # Servisleri durdur
$ make restart   # Servisleri yeniden başlat
$ make down      # Containerları tamamen kaldır

Nix ile Geliştirme (İsteğe Bağlı)

Proje, tüm geliştirme araçlarını sağlayan bir Nix flake içerir. Bu yöntemde sadece PostgreSQL Docker ile çalışır, backend ve frontend yerel olarak çalıştırılır.

Nix geliştirme ortamını etkinleştirin:

$ nix develop

İpucu: direnv kullanıyorsanız direnv allow komutu ile shell otomatik olarak etkinleşir.

Nix shell, Go 1.24, Node.js 20, Deno, pnpm, sqlc, air, golangci-lint ve diğer tüm gerekli araçları sağlar.

Backend servisi için ortam değişkenlerini ayarlayın (varsayılan veritabanı bağlantısı config.json dosyasında localhost:5432 olarak tanımlıdır):

$ cat > apps/services/.env.local << EOF
AUTH__JWT_SECRET=herhangi-bir-gizli-anahtar
EOF

Servisleri başlatmak için üç ayrı terminal açın:

# 1. PostgreSQL
$ docker compose up -d postgres

# 2. Backend (hot-reload)
$ cd apps/services && make dev

# 3. Frontend
$ cd apps/webclient && deno task dev

API http://localhost:8080, frontend http://localhost:3000 adresinde erişilebilir olacaktır.

Proje Yönetimi ve CLI

Servis container'ına bağlanmak için:

$ make cli

Bu komut sizi backend servisinin bash shell'ine bağlar. Buradan veritabanı yönetimi ve diğer işlemleri yapabilirsiniz.

Örnek

Profil getirme:

await backend.getProfile("tr", "eser");

Veri Modeli

Proje aşağıdaki ana veri yapılarını kullanır:

  • Profile: Kullanıcı profilleri (bireyler, organizasyonlar, topluluklar)
  • Story: İçerik ve yazılar (blog yazıları, haberler, etkinlikler)
  • User: Sistem kullanıcıları ve kimlik doğrulama bilgileri

Nasıl Katkıda Bulunabilirsin?

Herkesten katkı bekliyoruz. Başlamak için lütfen katkıda bulunma kılavuzumuzu okuyun. Yardım etmek isterseniz issue'lara göz atabilirsiniz. Herhangi bir sorunuz varsa Discord sunucumuza katılmaktan çekinmeyin. Herhangi bir noktada takılırsanız, GitHub Issues veya Discord üzerinden yardım istemekten çekinmeyin.

Lisans

Apache 2.0, detaylar için LICENSE dosyasını inceleyebilirsiniz.

About

aya web sitesi kaynak kodları

Resources

Code of conduct

Contributing

Security policy

Stars

60 stars

Watchers

3 watching

Forks

Used by

Contributors

Languages