İSTANBUL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİTİRME PROJESİ 1 GetFit (Spor Merkezi) Uygulaması Hazırlayanlar : Metin Hasdemir 1358110097 Burak Eregar 1358110099 Danışman : Yrd. Doç. Dr. Mustafa DAĞTEKİN OCAK - 2015
GetFit Projesi 1. Projenin Tanımı (Project Identification): Bu proje, spor merkezi antrenörlerinin ve müşterilerinin kullanımı için düşünülmüştür. Amaç; antrenör müşterilerine kendilerine uygun antrenman programı ve yemek listesi düzenleyeceği, gerektiğinde güncelleyebileceği ve bu sayede müşterilerinin gelişimini gözlemleyebileceği bir Windows uygulama ile müşterinin kendisi için antrenörü tarafından hazırlanmış olan programları görüntüleyebileceği, gerektiğinde kendine özel programlar ve yemek listelerini oluşturabileceği bir android uygulama geliştirmek. 2. Fizibilite Çalışması (Feasibility Study): Burada fizibilite 3 aşamada incelenmiştir. 2.1. Teknik Fizibilite (Technical Feasibility) : Projenin gerçekleştirilmesi için gerekli olan donanımlar: Adı/Modeli Acer Notebook SONY VPCEB1M1E Projede Kullanım Amacı Android Uygulama Geliştirme Bilgisayarı-1 Windows Uygulama Geliştirme Bilgisayarı-2 Samsung Galaxy Tab 3 tablet Uygulama Test Elemanı - 1 General Mobile Discovery 2 Uygulama Test Elemanı - 2 2.2. Ekonomik Fizibilite (Economical Feasibility): Bu projenin Android uygulaması, Eclipse derleyicisi kullanılarak Windows işletim sistemine sahip bilgisayar üzerinde uygulamanın gerçekleştirilmesi sağlanacaktır. Eclipse, yazılım geliştiricilerinin kullanımı için hiçbir ücret talep etmemektedir. Windows uygulaması ise, Visual Studio derleyicisi kullanılarak Windows işletim sistemine sahip bilgisayar üzerinde uygulamanın gerçekleştirilmesi sağlanacaktır. Bu derleyici Microsoft DreamSpark tarafından İstanbul Üniversitesi, Bilgisayar Mühendisliği öğrencilerinin ücret ödemeden kullanıma açtığı bir program olduğundan dolayı bu derleyiciyi kullanmak için bir maliyet gerekmemektedir.
Yazılımın gerçekleştirileceği dizüstü bilgisayar, test edileceği tablet ve telefon gibi cihazlar şahsımıza ait olduğundan bu cihazların temini içinde bir harcama yapılmayacaktır. 3. Proje Yönetimi ( Project Management) : Burada proje yönetimi 3 aşamada incelenmiştir. 3.1. Çalışma Planının Geliştirilmesi (Workplan Development): Projenin gidişatına ilişkin ilgili çalışmalara yapılarak projenin görev dağılımı ve risk yönetimi ile ilgili gerekli kararlar alındı. 3.2. Proje Görev Dağılımı ( Staffing the Project) : Projenin gerçekleştirilmesi için görev görev dağılımları belirlendi. Buna göre: Burak EREGAR ( Grup Lideri, Tasarım, Android UygulamaYazılımı Geliştirme, Test) Metin HASDEMİR( Analist, Veritabanı Tasarımı, Windows Uygulama Yazılımı Geliştirme, Test) 3.3. Risk Yönetimi (Risk Management): Projenin geliştirilmesi aşamasında karşılaşılabilecek olası problemlerle ilgili çözüm analizi yapıldı. Buna göre, projenin yetişmemesi durumunda Windows uygulaması iptal edilerek sadece Android uygulaması tamamlanacaktır. 4. Analiz (Analysis): Burada analiz 3 aşamada incelenmiştir. 4.1. İş Gereksinimlerinin Saptanması (Business Requirement Determination): Spor salonlarına gidilerek spor antrenörlerinden elde edilen bilgilerden yola çıkılarak fonksiyonel gereksinimler (Functional requirements) ve fonksiyonel olmayan gereksinimler (Non functional requirements) belirlendi.
Fonksiyonel Gereksinimler (Functional Requirements): Kullanıcı için: Egzersiz programı geliştirebilme, Seçilen egzersizin kaç set ve kaç tekrar yapılacağı bilgisini değiştirebilme, Egzersiz programına isim verebilme, Günlük kalori hesabı yapabilme, Antrenörün yolladığı yemek listesini görebilme, Kendine ait yemek listesi oluşturabilme, Egzersiz takvimi oluşturabilme, Egzersiz programlarını ve istatiksel verileri egzersizden sonra sosyal medya ortamında paylaşabilme, Antrenör tarafından hazırlanan egzersiz programını görebilme. Antrenör için: Kullanıcı için egzersiz programı geliştirebilme, Kullanıcılar için ek egzersiz programı geliştirebilme, Egzersiz programının set sayısı ve tekrar belirleyebilme, Egzersiz programını silebilme, Önceden oluşturulmuş egzersiz programı üzerinde değişiklik yapabilme, Var olan ya da oluşturulan egzersiz programlarını kullanıcılara yollayabilme Kullanıcıya uygun yemek listesi hazırlayabile. Fonksiyonel Olmayan Gereksinimler (Non Functional Requirements): Kullanıcı için: Uygulama sadece Android işletim sistemine sahip cihazlar üzerinde çalışması, Kolay kullanıma sahip olması, Güvenlikli olması, Sadece bir kullanıcısı destekliyor olması.
Antrenör için: Uygulama sadece Windows işletim sistemine sahip cihazlar üzerinde çalışabilmeli, Basit ve hızlı kullanıma olanak sağlamalı, Spor programlarını veri tabanına ekleyip kaydedebilmeli. 4.2. Durum Diyagramlarının Oluşturulması (Creating Usecase Diagrams): Projenin yönetilebilirliğini kolaylaştırmak için durum diyagramları oluşturuldu. Kullanıcı için durum diyagramı:
Antrenör için durum diyagramı:
4.3. Veri Modelleme (Data Modelling): Veri tabanında yer alacak olan veriler arasındaki ilişki yapısı belirlendi. (Birebir ilişki, bire-çok ilişki, çoklu- tekli ilişki, çoklu- çoklu ilişki) 5. Toplantı (Meeting): Proje de şimdiye kadar yapılanların ön değerlendirmesi yapılarak projenin ilerleyişi ile ilgili adımlar gözden geçirildi. 6. Tasarım (Design): Burada tasarım 3 aşamada incelenmiştir. 6.1. Ara yüzün Tasarlanması (Designing the Interface): Kullanıcı giriş ekranı, yönetici giriş ekranı, tablo renklendirmeleri ve tasarımı gibi nitelikler belirlendi. 6.2. Program Tasarımı (Program Design) : Programların gerçekleştirileceği yazılım teknolojileri belirlendi. Buna göre; antrenörün kullanacağı Windows uygulaması C# yazılım dilinde, kullanıcının (müşterinin) kullanacağı program Android uygulaması ise Java yazılım dilinde yapılacaktır. 6.3. Veri tabanı Tasarımı(Database Design): Veri tabanında yer alacak olan verilerin nitelikleri, isimleri gibi kriterler tespit edildikten sonra kullanılacak olan sorgu dili belirlendi. Buna göre:
Member Table 1. memberid: Müşteri primary key. 2. name: Müşterinin adı. 3. surname: Müşterinin soyadı. 4. phone: Müşterinin telefon numarası. 5. email: Müşterinin email adresi. 6. address: Müşterinin adresi. 7. registrationdate:. Müşterinin kayıt tarihi 8. birthdate: Müşterinin doğum günü. MemberDetailId 1. MemberDetailId: Primary key. 2. MemberID: Müşteriler için Foreign key. 3. Age: Müşterinin yaşı. 4. Illness: Müşterinin hastalık durumu. 5. Weight: Müşterinin kilosu. 6. Height: Müşterinin boyu. 7. Gender: Müşterinin cinsiyeti. ProgramId 1. ProgramId: Primary key. 2. MemberId: Müşteriler için Foreign key. 3. CoachId: Antrenör id. 4. StartDate: Müşterinin programa başlama zamanı. 5. EndDate: Müşterinin programı sonlandırma zamanı. TrainingMovementId 1. TrainingMovementId: Primary key. 2. ProgramId: Antreman için Foreign key. 3. MovementId: Hareketlerin id si. 4. DayId: Müşterinin çalıştığı programın gününü içermektedir. 5. MovementId: Hareket id. 6. MovementSet: Hareketlerin set sayısı. 7. MovementRepeat: Hareketlerin tekrar sayısı.
MovementId 1. MovementId: Primary key. 2. MovementName: Hareketin adı. CoachId 1. CoachId: Primary Key. 2. Name: Antrenörün adı. 3. Surname: Antrenörün soyadı. 4. Phone: Antrenörün telefon numarası. 5. Email: Antrenörün email adresi. 6. Password: Antrenörün şifresi. EvolutionId 1. EvolutionId: Primary Key. 2. MemberId: Foreign key. 3. StartDate: Programa başlama zamanı. 4. Description: Müşterinin gelişim aşaması hakkındaki bilgi. EvolutionDetailId 1. EvolutionDetaildId: Primary Key. 2. EvolutionId: Foreign Key. 3. Weight: Programın sonundaki kaydedilen kilo. 4. Height: Program sonundaki kaydedilen uzunluk. 5. ArmMuscle: Program sonundaki kol kasındaki gelişme. 6. LegMuscle: Program sonundaki bacak kasındaki gelişme 7. WaistLine: Program sonundaki bel ölçüsü. 8. Fat: program sonundaki yağ oranı.
Veritabanı ilişki şeması: 7. Kodlama(Coding): Burada kodlama 3 aşamada incelenmiştir. 7.1.Veri tabanının Kodlanması(Database Coding) Veri tabanının görüntüsü:
7.2.Windows Uygulamasının Kodlanması(Windows Application Coding) Daha başlanmadı. 7.3.Android Uygulamasının Kodlanması(Android Application Coding) Daha başlanmadı. 8. Test(Testing) Daha başlanmadı. 9. Yazılımın Kurulması(Installing Software) Daha başlanmadı.