Skip to content

Instantly share code, notes, and snippets.

@cemremengu
Last active July 16, 2026 14:49
Show Gist options
  • Select an option

  • Save cemremengu/98564fb7a90a020e50a24207bd8481d4 to your computer and use it in GitHub Desktop.

Select an option

Save cemremengu/98564fb7a90a020e50a24207bd8481d4 to your computer and use it in GitHub Desktop.
internship-syllabus.md

Python, REST API ve React Eğitimi

1. Geliştirme Ortamının Kurulumu

Aşağıdaki araçları kurun:

Bölüm 1 - Python Temelleri

2. Sayı Filtreleme

2000 ile 3200 arasındaki;

  • 7'ye tam bölünebilen,
  • 5'in katı olmayan

tüm sayıları bulun ve sonuçları tek satırda, virgülle ayrılmış şekilde yazdırın.

3. Faktöriyel Hesaplama

Bir sayının faktöriyelini iki farklı yöntemle hesaplayan program yazın.

a. Döngü Kullanarak

  • for döngüsü kullanın.

b. Recursive (Özyinelemeli)

  • Aynı işlemi recursive fonksiyon ile gerçekleştirin.

4. Parola Doğrulama

Kullanıcıdan alınan parolanın aşağıdaki kuralları sağlayıp sağlamadığını kontrol edin.

Parola:

  • En az bir büyük harf içermelidir.
  • En az bir rakam içermelidir.
  • En az bir noktalama işareti veya matematiksel sembol içermelidir.
  • "parola" kelimesini içermemelidir.
  • Uzunluğu 8 ile 30 karakter arasında olmalıdır.

Program, parolanın geçerli olup olmadığını kullanıcıya bildirmelidir.

5. Regex ile Parola Kontrolü

Bir önceki sorudaki doğrulamayı yalnızca tek bir Regular Expression (Regex) kullanarak gerçekleştirin.

Regex'inizi aşağıdaki adresten test edebilirsiniz:

https://regex101.com/

6. Regex ile İsim Doğrulama

Aşağıdaki kurallara uygun isim doğrulaması yapan bir regex yazın.

Kurallar:

  • İsim zorunludur.
  • Göbek adı opsiyoneldir.
  • Soyisim zorunludur.
  • İsim ve göbek adının ilk harfi büyük, kalan harfleri küçük olmalıdır.
  • Soyisim tamamen büyük harflerden oluşmalıdır.

Geçerli Örnekler

  • Cemre MENGU
  • Sude Sevval CILOGLU

Geçersiz Örnekler

  • Cemre Mengu
  • Sude Sevval Ciloglu
  • cemre mengu
  • sude
  • Sude
  • cemre MENGU

7. Tek Sayılar Arasına Tire Ekleme

Verilen sayı veya string içerisindeki ardışık iki tek rakamın arasına - karakteri ekleyen bir program yazın.

Örnek:

Girdi:
454793

Çıktı:
4547-9-3

Bölüm 2 - REST API ve Veritabanı

8. Flask ile İlk API

Flask kullanarak basit bir REST API oluşturun.

API'yi hem:

  • Web tarayıcısı
  • Postman

üzerinden test edin.

Dokümantasyon:

https://flask.palletsprojects.com/en/3.0.x/quickstart/#a-minimal-application

9. SQLite Veritabanı

Python sqlite3 modülünü kullanarak bir SQLite veritabanı oluşturun.

Dokümantasyon:

https://docs.python.org/3/library/sqlite3.html

10. Filmleri Listeleme

GET /

endpoint'i oluşturun.

Veritabanından aşağıdaki alanları döndürün:

  • year
  • title

Sonuçlar:

  • JSON formatında olmalıdır.
  • year alanına göre artan şekilde sıralanmalıdır.

11. Yıla Göre Filtreleme

Aşağıdaki endpoint'i oluşturun:

GET /movies?year=1983

Verilen yıla ait filmleri döndürmelidir.

12. Film Ekleme

Aşağıdaki formatta JSON alan bir endpoint oluşturun.

POST /movies

Request Body

{
  "year": 2023,
  "title": "Barbie"
}

Yeni film veritabanına kaydedilmelidir.

13. Query Param ile Film Silme

Aşağıdaki endpoint'i oluşturun.

DELETE /movies?year=2023

Belirtilen yıla ait tüm filmler silinmelidir.

14. Path Param ile Film Silme

Bir önceki işlemi path param kullanarak tekrar gerçekleştirin.

Örnek:

DELETE /movies/2023

15. Film Arama

Aşağıdaki endpoint'i oluşturun.

GET /search?title=test

title alanı içerisinde verilen değeri LIKE sorgusu kullanarak arayın.

Bölüm 3 - React

16. React Projesi

Vite ve Ant Design kullanarak yeni bir React projesi oluşturun.

Projeyi Visual Studio Code'da çalıştırın ve uygulamaya bir DatePicker bileşeni ekleyin.

Dokümantasyon:

17. Axios ile Veri Listeleme

Axios kütüphanesini yükleyin.

REST API'den filmleri çekerek tabloda listeleyin.

18. İsteğe Bağlı Veri Yükleme

Uygulama açıldığında tablo boş olmalıdır.

Kullanıcı Yükle butonuna bastığında API çağrısı yapılarak veriler getirilmelidir.

19. Film Arama

Ant Design Search Input bileşenini kullanarak film araması yapın.

Her arama aşağıdaki endpoint'e istek göndermelidir.

GET /search?title=test

Arama işlemi SQL LIKE sorgusu ile gerçekleştirilmelidir.

Dokümantasyon:

https://ant.design/components/input#components-input-demo-search-input

20. Yeni Film Ekleme

"Ekle" butonuna basıldığında bir modal açılmalıdır.

Modal içerisinde yer alan form doldurulduktan sonra:

POST /movies

isteği gönderilerek yeni film eklenmelidir.

21. Film Güncelleme

"Güncelle" butonuna basıldığında mevcut film bilgileri form içerisinde gösterilmelidir.

Değişiklikler:

PUT /movies

isteği ile kaydedilmelidir.

22. Filmleri Dışa Aktarma

Kullanıcı bir Export butonuna bastığında kayıtlı filmleri aşağıdaki formatlardan en az birine aktarabilmelidir.

  • CSV
  • Excel (.xlsx)

Ek Çalışmalar

23. FastAPI

Flask yerine aynı REST API'yi FastAPI kullanarak tekrar geliştirin.

https://fastapi.tiangolo.com/

24. Farklı Backend Teknolojileri

Geliştirdiğiniz REST API'yi aşağıdaki teknolojilerden en az biriyle yeniden yazın.

  • Java (Spring Boot)
  • Go (Golang)

Teslim Kriterleri

  • Kodlar GitHub üzerinde versiyonlanmalı ve paylaşılmalıdır.
  • Her bölüm ayrı commit'ler halinde geliştirilmelidir.
  • API endpoint'leri Postman ile test edilmelidir.
  • React uygulaması backend API ile tam entegre çalışmalıdır.
  • Kod okunabilir, modüler ve temel hata kontrollerini içermelidir.
  • Proje çalıştırma adımlarını açıklayan kısa bir README.md dosyası eklenmelidir.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment