Skip to content

sinanbalibey/flashcard24

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Readme

Flashcard

1.Proje Amacı

Flashcard Projesi

Flashcard projesi, kullanıcıların hafıza tekniklerini kullanarak kelime ezberlemesini sağlayan bir bilgi kartı uygulamasıdır. Bu proje, 2024 BTK Akademi hackathonu için hazırlanmıştır.

Projede, Gemini API'si kullanılarak öğrenme odaklı bir uygulama geliştirilmesi amaçlanmıştır. Bu kapsamda, kullanıcıların yeni kelimeleri öğrenirken ezberleme konusunda fayda sağlaması hedeflenmiştir.

Gemini AI sayesinde, kullanıcıların eklediği kelimelerle ilgili İngilizce cümleler oluşturularak, kelimelerin hafızada kalmasına destek olunmaktadır.

diagram.png

2.Proje Kuralları

Yarışma Hakkında

Türkiye'de yazılım geliştirmeye ve yapay zekaya gönül vermiş herkese açık ve öğrendiklerini pratiğe dökme şansını yakalayacağı veri yarışmamız Hackathon 2024 başlıyor.

Yarışmamız, Gemini (üretken yapay zeka) destekli uygulamalar (web, mobil vs.) geliştirmeyi içermektedir. Ürünlerin hangi temada ve hangi kurallarla gerçekleştirileceği canlı yayında yarışma başlangıcında açıklanacaktır. Tüm web, mobil, masaüstü ve yapay zeka geliştiricileri yarışmamıza bekliyoruz!

Hackathon 2024 Süreci: • www.btkakademi.gov.tr’ye giriş yap ve sayfa sonunda yer alan link üzerinden Hackathon 2024’e başvur. • Yarışma kurallarının ve konseptinin anlatılacağı canlı yayına katıl ve projeni geliştirmeye başla! • Projeni paylaşılan form ile BTK Akademi’ye ilet ve ilk 10’a kalma şansını yakala! • Final sunumları sonrası ilk 3 takım/bireyden biri ol ve ödülünü kazan.

• Son Başvuru : 27 Eylül – 20 Ekim 2024 • Yarışma Kurallarının Aktarılacağı Canlı Yayın : 21 Ekim 2024 • Yarışma Tarihi : 21 Ekim – 3 Kasım 2024 • Ön Jüri Değerlendirmesi: 4 Kasım – 17 Kasım 2024 • Jüri Sunumu : 19 Kasım 2024 ( Jüri komitesine bağlık olarak değişiklik gösterebilir) • Ödül Töreni : Proje Komitesi tarafından belirlenerek ilgili katılımcılara bilgi verilecektir.

Yarışma Kuralları

  • Hackathon süreci ödül töreni hariç tamamen online olarak yürütülecektir. Kuralların açıklandığı ve temanın anlatıldığı canlı yayına katılmak ve süreci takip etmek yarışmacıların sorumluluğundadır.
  • Yarışma sonunda katılımcılardan ürünün GitHub kodları, ürünlerinin canlı halinin olduğu link (canlıya almak mümkün değilse 1 dakikalık video) ve proje açıklamaları bir form aracılığıyla istenilecektir. Geliştirilecek olan ürün Üretken Yapay Zeka (Gemini) kullanan ve konseptte belirtilen problemi çözecek olan herhangi bir ürün olabilir (Mobil uygulama, web uygulaması, masaüstü uygulaması vs.)
  • Ürün geliştirmede Gemini’ın ana ürün olarak kullanımı gerekli olmakla beraber Gemini API, Langchain, Langgraph vb. tüm framework’lerin kullanımı serbesttir.
  • Ürünün bir RAG projesi, chatbot projesi, mobil uygulama, web uygulaması, masaüstü uygulaması vb. tüm şekillerde ortaya çıkması olasıdır. Belirtilecek temada ürünün geliştirilmesi gerekmektedir. Temanın ne olduğu yarışmanın başlangıç günü yapılacak canlı yayında açıklanacaktır.
  • Takımlar/bireyler kendi çabalarıyla yazılım yarışmasını tamamlamakla yükümlüdür. Profesyonel bir destek almak, diğer takımlarla etkileşime geçip çalışmalarını yönlendirmeye çalışmak veya yarışmanın düzenini bozmaya yönelik herhangi bir girişimde bulunmaya çalışmak gibi durumlarda BTK Akademi, yarışmacı grubu diskalifiye etme hakkına sahiptir.
  • Komiteye iletilen tüm projeler BTK Akademi ve komite tarafından ön değerlendirmeye tabi tutulur. Bu süreçte usulsüzlük, intihal, kuralların dışına çıkma vb. gibi durumlarda BTK Akademi'nin ilk 10 takımda değişikliğe gidip komiteye yedek ekipleri davet etme hakkı bulunmaktadır.
  • Komite ve BTK Akademi proje başvuru sahiplerinden, gerekli görüldüğü takdirde, proje kodları ve son ürünlerinin yanı sıra ek materyal talep edebilir.
  • İlk 10 takım/birey arasına kalan kişiler komiteye sunum yapacaktır. Bu sunum tamamen çevrim içi olacak ve ilk 10 açıklandıktan sonra sunum formatı ilgili kişilerle paylaşılacaktır. Genel olarak yapılan ürünü, süreci ve sonuçlarını anlatacağınız 7 dakikalık sunumlar ve ürün gösterimi olacaktır.

Gerekli görülmesi halinde başvuru için ek süre verilebilir ve süreçle ilgili açıklanan tarihler üzerinde değişiklik yapılabilir.

Konsept

Eğitim odaklı uygulama!

Örnekler:

  1. Öğretmenlerin AI yoluyla sınav, ders müfredatı, quiz vs hazırlamasına yardımcı olacak uygulama
  2. Öğrencilerin belirli konuları daha iyi öğrenmesi için destek sağlayacak uygulama

3.Kullanım Senaryosu

  • Kelime Seti Oluşturma: Kullanıcılar, yeni kelime setleri oluşturmak için "Yeni Kart Ekle" butonuna tıklayarak bir başlık ve kelimeler ekleyebilirler. Her kelime için anlam ekleyebilirler.
  • Cümle Üretme: Kullanıcı, oluşturduğu kelime setine yeni kelimeler eklediğinde, Gemini API'si sayesinde her kelime için ilgili bir İngilizce cümle oluşturulur. Bu, kelimenin hafızada kalmasına yardımcı olur.
  • Düzenleme ve Silme: Kullanıcılar, oluşturdukları kelime setlerini düzenleyebilir veya ihtiyaç duymadıkları setleri silebilirler. Silme işlemi onay gerektirir, böylece yanlışlıkla silme durumu önlenir.

123.PNG

Projenin Çalıştırılması

Projenin gereksinimleri sadece docker yüklü bir makine.

Bir dizinde “docker-compose.yml” isimli bir dosya oluşturun ve içine aşağıdakileri yapıştırın.

services:
  flashcard-app:
    image: sibacode/flashcard
    restart: always
    ports:
      - "8080:8080"
    environment:
      SPRING_DATASOURCE_URL: jdbc:mysql://db:3306/flashcard
      SPRING_DATASOURCE_USERNAME: root
      SPRING_DATASOURCE_PASSWORD: 123456
      GOOGLE_API_KEY: YOUR-API-KEY
    depends_on:
      - mysql
    networks:
      - flashcard_network

  mysql:
    image: mysql:8.0
    restart: always
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: flashcard
    volumes:
      - db_data:/var/lib/mysql
    networks:
      - flashcard_network

volumes:
  db_data:

networks:
  flashcard_network:
    driver: bridge

“GOOGLE_API_KEY” değişkenini kendi API_KEY’inizle değiştirin.

Compose dosyasının bulunduğu dizine konsol aracılığıyla erişin ve şu komutu yazın:

docker-compose up -d 

Gerekli indirmeleri yaptıktan sonra projeye http://localhost:8080 adresinden erişebilirsiniz.

İlgili video: https://www.youtube.com/

Not: Projede gemini-1.5-flash modeli kullanılmıştır.

4.Teknik Gereksinimler

Flashcard projesi, aşağıdaki teknik gereksinimleri karşılayacak şekilde geliştirilmiştir:

  1. Programlama Dili:
    • Java (Spring Boot Framework kullanarak)
  2. Framework:
    • Spring Boot: Uygulamanın hızlı bir şekilde geliştirilmesi için kullanılmıştır.
  3. Veritabanı:
    • MySQL veritabanı, kullanıcıların kelime setleri ve ilgili bilgileri saklamak için kullanılacaktır.
  4. API Entegrasyonu:
    • Gemini API: Kullanıcıların eklediği kelimelerle ilgili İngilizce cümleler oluşturmak için kullanılmıştır.
  5. Frontend Teknolojileri
    • HTML5: Uygulamanın yapısının oluşturulması için kullanılmıştır.
    • CSS3: Uygulamanın görsel tasarımını oluşturmak için kullanılmıştır.
    • JavaScript: Dinamik içerik ve kullanıcı etkileşimlerini sağlamak için kullanılmıştır.
  6. Docker:
    • Uygulamanın konteynerleştirilmesi ve taşınabilirliğinin sağlanması için kullanılmıştır.
  7. Gereksinim Yönetimi:
    • Maven: Proje bağımlılıklarını yönetmek için kullanılacaktır.
  8. Hedef Platformlar:
    • Uygulama, masaüstü ve mobil tarayıcılarda çalışacak şekilde tasarlanmıştır.

Bu teknik gereksinimler, projenin geliştirilmesi sırasında izlenmesi gereken temel kriterleri belirler. Geliştiricilerin bu gereksinimleri karşılaması, uygulamanın başarılı bir şekilde çalışmasını sağlamıştır.

5.Özellikler

Uygulamanın sunduğu ana özellikler şunlardır:

  • Flashcard oluşturma
  • Flashcard silme
  • Gemini API ile cümle oluşturma

6.Gelecek Geliştirmeler

Farklı Kelime Setleri Oluşturma

Kullanıcılar, ilgi alanlarına veya öğrenim hedeflerine göre özelleştirilmiş kelime setleri oluşturabilirler. Bu özellik, öğrenme deneyimini daha kişisel ve etkili hale getirir.

Kelime Setleri Karıştırma

Kelime setlerinin rastgele sıralanması, öğrenme sürecine yenilik katmakta ve tekrar eden kalıplardan kaçınarak hafıza tazelemeyi kolaylaştırmaktadır. Bu özellik, kullanıcıların kelimeleri daha iyi hatırlamalarına ve öğrenme deneyimlerini zenginleştirmelerine yardımcı olur.

7.Sonuç

Flashcard projesi, kullanıcıların hafıza tekniklerini kullanarak kelime ezberlemelerini destekleyen etkili bir uygulama olarak tasarlanmıştır. Gemini API'sinin entegrasyonu sayesinde, kullanıcılar ekledikleri kelimelerle ilgili anlamlı İngilizce cümleler oluşturabilir ve bu sayede kelimelerin hafızada kalmasını güçlendirebilirler.

Farklı kelime setleri oluşturma ve bu setlerin karıştırılabilmesi gibi özellikler, öğrenme sürecini daha etkileşimli ve eğlenceli hale getirmektedir. Kullanıcılar, kendilerine uygun yöntemlerle çalışarak daha etkili bir öğrenme deneyimi elde edebilirler. Proje, eğitimde yenilikçi bir yaklaşım sunarak kullanıcıların kelime hazinelerini geliştirmelerine katkıda bulunmaktadır.

133.PNG

13.PNG

14.PNG

15.PNG

About

Btk Akademi Hackthon24

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published