Skip to content

Latest commit

 

History

History
148 lines (101 loc) · 10.5 KB

README.md

File metadata and controls

148 lines (101 loc) · 10.5 KB

UniCoders-GraduationProject 📢

Üniversite öğrencisi arkadaşlarımız için geliştirilmekte olan algoritmik yarışma ortamını(computational programming) kurmayı hedefliyoruz. Algoritmik yarışma siteleri arasındaki en populer sitelerden biri codeforeces.com bide topcoders.com var. Hedefimiz buna benzer bir ortamı Türkiye'de 🇹🇷 Türk öğrencileri için geliştirmek.

Algoritma Seviye Geliştirme ve Takip Etme Platformu 👏

Kastamonu Üniversitesi, Mühendislik Mimarlık Fakültesi-Bilgisayar Mühendüsliği bölümü, Kastamonu

🎓 Umedzhon Izbasarov :bowtie: :neckbeard: Zübeyr Eser 🎓
[email protected] [email protected]

Özet: Bu çalışma ile yazilima ilgisi olanlarin, özellikle lise yada üniversite öğrencilerinin algoritma seviyesini ölçme ve algoritmik yarışma dünyasına açılma hedeflenmiştir. En önemli nokta olarak algoritmik seviyelerini takip edebilmeleri olacaktır. Bilgisayar muhedisliği veya yazilim muhendisliği oğrencilerin Türkiye’de algoritmik düşünebilme konusunda nerede olduklarini takip edememe sorunu oldugundan dolayi bu fikir düşünülmüştür. Bu platform sayesinde yeni mezün olacak öğrencilerin boş kalmadan hemen iş sahibi olabilmeleri için ve yazılım şirketlerinde istedikleri kriterde çalışanına sahip olabilmelerine olanak sağlar. Hesabı olan herhangi bir üye kurallara bağlı kalmak şartıyla sanal yarışma hazırlayabilir. Aynı şekilde bir kurum da kendi şirketine problemleri çözebilen, algoritmik düşünübilen genç yetenekleri kendi bünyesine alabilmek için yarışma hazırlayabilir. 👏

Anahtar Sözcükler: Algoritma, Programlamada algoritma nedir, Algoritma 101, Algoritma seviye, Algoritmik düşünme, Algoritma yarışmaları, Algoritma antreman, Yazılım,

Algorithm Level Development and Tracking Platform 👏

Abstract:
In this study, it is aimed to measure the algorithm level of those who are interested in, especially high school or university students, and to open their way to the world of algorithmic competition. The most important point is that they will be able to follow their algorithmic level. Due to computer engineering and software engineering students can not keep track of what is their algorithmic level and are they improving themselves in Turkey we come ti this idea. This platform allows new graduates to get hired immediately, without being unemployed, and to have employees at the criteria they desire in software companies. Anyone with having an account can prepare a virtual contest by following certain rules. Any institution can also prepare competitions so that they can select talented students at their own company. It will be manual (how to use it) for how to use this platform for new users.
👏

Keywords: Algorithm, What is an algorithm in programming, Algorithm 101, Algorithm level, Algorithmic thinking, Algorithm contests, Algorithm training, Software,

1.GİRİŞ

1.1 UYGULAMA KONUSU

1.2 UYGULAMA AMACI

1.4 ÖZET

2. GENEL YAPI

2.1 UYGULAMA MODÜLLERİ

• İLAN MODÜLÜ • KULLANICI MODÜLÜ • ADMİN MODÜLÜ

2.2 UYGULAMA KULLANICI-YETKİ YAPISI(USE-CASE)

2.3 GELİŞİM PLANI

2.4 GELİŞİM SÜRECİ AŞAMALARI

3. SİSTEM GEREKSİNİMLERİ

3.1 YAZILIM ARAÇLARI

4. VERİTABANI TASARIMI

5. TASARIM

5.1 EKRAN TASARIMLARI


1.GİRİŞ

1.1 UYGULAMA KONUSU

Kullanıcıların algoritma seviyelerini geliştirme ve gelişimlerini takip etmektir.

1.2 UYGULAMA AMACI

Temel amaç kullanıcının algoritma oluşturma seviyesini ölçmek ve arttırmaktır, algoritmik yarışma dünyasına giriş yapmalarını sağlamaktır.

1.3 UYGULAMANIN KULLANICI KİTLESİ

Uygulamanın kullanıcı kitlesi özellikle lise ve üniversite öğrencileridir.

1.4 ÖZET

Kullanıcıların gelişimini takip edebilmesine, düzenli olarak rekabet ortamının eksikliğine çare bulabilecek bir projedir. İnsanları artık en azından temel olarak hangi konuları bilmelerini ve ilerlemelerini gösterebilmektir.

2. GENEL YAPI

2.1 UYGULAMA MODÜLLERİ

•	ANTREMAN MODÜLÜ
•	YARIŞMA MODÜLÜ
•	KULLANICI MODÜLÜ
•	EDİTÖR MODÜLÜ

2.2 UYGULAMA KULLANICI-YETKİ YAPISI(USE-CASE)

1

2.3 GELİŞİM PLANI

Proje Aşamaları Önerilen Takvim Bilgisi

Çalışma Planlanan Başlangıç Tarihi Planlanan Bitiş Tarihi
Analiz Çalışması 10 Kasım 2017 27 Kasım 2017
Tasarım Çalışması 10 Aralık 2017 27 Aralık 2017
Gerçekleştirim Çalışması 22 Ocak 2018 29 Mayıs 2018
Danışman Teslimi 5 Haziran 2018 10 Haziran 2018

2.4 GELİŞİM SÜRECİ AŞAMALARI

Gelişim süreci boyunca proje ile ilgili yaptıklarımız (aşama 1): İlk önce hazır tasarım araştırılması yapılmıştır. Bulunan bazı tasarımlar test etdilmiştir ve en son şuan kullanılan tasarım kullanmaya karar verilmiştir. Bulunan bu tasarımda sadece 5 sayfa vardır, tasarımı %65 oranında tamamen proje ihtiyacına göre değiştirilmistir. Değiştirdikçe tasarımın responsive görünümünde bozulmalar oluyordu, bu bozulmalar oldukça onları düzeltilmiştir. Soru çöz, kayıt ol, giriş yap, antreman, profil, hakkımızda sayfalarının gövde kısımlarının tasarımı tamamen bize aittir. Tasarımı tamamen istenilen hale soktuktan sonra veri tabanı tasarımına başlatılmıştır. Admin, cevaplar, editör, kullanıcılar, önerilen_sorular, sorular ve yarışmalar olmak üzere 7 tane tablo tasarlanmıştır. Veritabanı tasarımı MySQL ile yapılmıştır. Veritabanınıda bitirdikten sonra kodlamaya geçilmiştir. İlk önce API üzerinden kodun derlenmesini test ettikten sonra Anasayfa, Kayıt Ol, Antreman, Yarışmalar, Top 100, Profil ve Giriş Sayfalarının kodlamasını bitirilmiştir burada en fazla API üzerinden kullanıcıdan gelen kodun derlemesi ve derlenen kodun geri dönen çıkış işlemiyle uzun süre uğraşılmıştır. Daha sonra soru paylaşma sayfasına yetki koyulmuştur yani giriş yapmayan kullanıcıların soru önerme veya çözme yetkileri yoktur ancak kayıtlı kullanıcılar soru önerebilir veya çözebilir. Soru çöz sayfasına girmeye çalıştığında eğer kullanıcı girişi yapmış durumunda değilse Giriş Yap sayfasına yönlendirilmiştir.
Giriş yapan kullanıcının bilgilerini görmesi için bir Profil sayfası tasarlanmıştır ve kodlamasını yapılmıştır. Profil Sayfasında kullanıcı tarafından önerilen sorular görebilmektedirler ve istendiği takdirde silinebilmektedir ve düzenleyebilmektedirler, bunun yanında kullanıcı bilgilerini de burada güncelleyebilmektedir. Böylece sitenin normal kullanıcı yüzü bitmiştir.

3. SİSTEM GEREKSİNİMLERİ

3.1 YAZILIM ARAÇLARI

1-) Java Server Page JSP 2-)CSS ve JavaScript 3-)MySQL 4-)Eclipse 5-)API kullanmak içi JDOODLE id ve şifre.

4. VERİTABANI TASARIMI

2

5. TASARIM ve KODLAR

5.1 EKRAN TASARIMLARI

Anasayfa Anasayfanın üst kısmında en iyi üç yarışmacının profili puanlarıyla beraber gözükecektir. En iyi üç yarışmacıların alt kısmında ise antreman soruları gözükecektir.

3

Herhangi bir sorunun üzerine tıklandığında soru çözme ekranına yönlendirilmektedir.

4

Antreman Antreman sayfasında, veritabınındaki tüm sorular listelenmektedir. Her çözülen soru için puan verilmektedir. Sorunun yapısı: Başlık, açıklama, soruya girdiler ve çıktılar, sonuç ve kimin tarafından paylaşıldığı ekranda gözükmektedir.

5

Yarışmalar Yarışmalar sayfasında, tüm yarışmalar sayfada gözükmektedir. Yarışmalar kurumlar tarafından düzenlenmektedir ve yönetici yarışmanın bilgilerini doldurarak paylaşılmaktadır.

6

Top 100 Top 100 sayfasında en iyi 100 kullanıcı listelenmektedir. Kullanıcıların puanlarına göre listelenmektedir. Her kullanıcının kullanıcı adı, isim, soyisim,mail adres ve puan olarak gözterilmektedir. Eğer üye olmayan biri kullanıcıların listesine göz atmak isterlerse mail kullanıcıların mail adresleri gözükmeyecektir.

7

8

Hakkımızda Hakkımızda sayfasında, unicoders olarak yapılan platformda neler yapılmakta, ne amaçla geliştirilmiştir açıklanmıştır. Aurıca algoritmik yarışma dünyasına ilk adımlar nasıl atılır ve yarışmalara nasıl hazırlanmak gerektiğini kısa bir bilgi verilmektedir.

9

Kayıt Kayıt sayfasında kayıt olmak isteyenler kolay bir şekilde isim, soyisim, kullanıcı adı, şifre, okul adı, cinsiyet, doğum tarihi ve mail adreslerini girerek hesap açabilmektedirler.

10

Giriş Giriş sayfasında bir editör giriş ve bir kullanıcı sayfasın iki küçük ekranda gözükmektedir. Yönetici girişi için ayrı bir sayfa açılmıştır.

11

12

Profil Kullanıcılar profil bilgilerini girdiklerinden sonra yanlış bilgi varsa eğer bilgierini güncelleyebilmektedir. Profil sayfasından kullanıcılar editöre sorular gönerebilmektedirler. Önerilen soruları listeleyebilmektedirler. Çözülen sorularını dahil görebilmektedirler. Çıkış yap linkine tıklayarakda çıkabilmektedirler.

13