Welcome to My Blog 👋

Java, Spring Framework, Microservices, Docker, Kubernetes, AWS and Others 🚀
Follow Me

Bitirme Projesi - Android - Sosyal Kampüs



  June 14, 2018    Labels:,,,,,,,,, 

Çanakkale Onsekiz Mart Üniversitesi Bilgisayar Mühendisliği Bölümü'nden mezun olmadan önce bitirme projesi olarak yaptığım android uygulamasıdır. Bu uygulamada hem Java dili ile mobil platformda çalışacak bir uygulama yazılmıştır hem de Php dili ile server tarafında bir web servisi yazılmıştır.

Proje Kodları


Proje Yapısı


Özet

Sosyal Kampüs projesi, ÇOMÜ öğrencilerinin birbirleriyle ve kampüsle internet üzerinden etkileşim halinde olabilmeleri için kullanabilecekleri bir mobil uygulamadır. Bu mobil uygulama Android işletim sistemi üzerinde çalışacak şekilde geliştirilmiştir.

Kampüste mekan işleten kişilerden, kampüste etkinlik düzenleyen kişilere kadar, kampüs hayatındaki herkesin kullanabileceği Sosyal Kampüs uygulaması, bu kişilerin birbirleri ile internet üzerinden etkileşim halinde olabileceği bir uygulamadır. ÇOMÜ öğrencileri kampüsteki etkinlik ve mekanlar ile ilgili tüm bilgilere Sosyal Kampüs uygulaması ile anlık olarak erişebilip, diğer kişilerin paylaştığı fotoğraf, video, etkinlik gibi gönderileri görüntüleyip haberdar olabilecektir.

Tanım

Projemiz kısaca ÇOMÜ öğrencilerinin birbirleri ve kampüs ile internet üzerinden etkileşim halinde olabilmeleri için kullanabilecekleri bir mobil uygulamadır. Bu mobil uygulama Android işletim sistemi üzerinde çalışacaktır.

Projemiz ÇOMÜ öğrencilerinin, kampüste mekan işleten kişilerin ve kampüste etkinlik düzenleyen kişilerin kullanacağı, bu kişilerin birbirleri ile internet üzerinden etkileşim halinde olabileceği bir uygulama olacaktır. Uygulamamız sayesinde ÇOMÜ kampüsünde okuyan tüm öğrenciler internet üzerinden kampüs içindeymiş gibi sosyalleşebileceklerdir. ÇOMÜ öğrencileri kampüsteki etkinlik ve mekanlar ile ilgili tüm bilgilere uygulamamız ile anlık olarak erişebileceklerdir.

Projemiz ÇOMÜ öğrencilerinin internet üzerinden birbirleri ile arkadaş olabilmesini sağlayarak öğrencilerin internet üzerinden sosyalleşmesini hedeflemektedir. Ayrıca öğrenciler birbirleri ile mesajlaşabilecek bu şekilde kampüs içindeki ortamı internet üzerinde de bulabileceklerdir. Öğrenciler kendileri ile ilgili bir profil sayfası doldurarak kendilerini diğer öğrencilere tanıtabileceklerdir. Ayrıca öğrenciler profil sayfalarına durum, fotoğraf, video ve konum ekleyerek üniversite hayatında yaptıklarını diğer öğrencilerle paylaşabileceklerdir. Öğrenciler kampüs içerisinde gittikleri mekanda konum paylaşarak daha sosyal olabileceklerdir. Ayrıca öğrenciler konum paylaştıkları mekan hakkında yorum yazarak ve puanlama yaparak diğer öğrencilere bu mekan hakkında bilgi verebileceklerdir. Öğrenciler kampüste düzenlenen etkinliklerden uygulamamız ile anlık olarak haberdar olabileceklerdir. Öğrenciler bu etkinlikler hakkında detaylı bilgi alabilecekler ve hangi öğrencilerin bu etkinliğe katılacağını görebileceklerdir.

Projemiz kampüs içerisinde etkinlik düzenleyen ve mekan işleten kişilerinde yaptıkları işleri öğrencilere tanıtabilmeleri için imkan sağlamaktadır. Bu kişiler işlettikleri mekanları uygulamamıza ekleyebilir ve mekanları hakkında detaylı bilgi verebilirler. Ayrıca etkinlik düzenleyen kişiler uygulamamıza etkinliklerini ekleyebilir ve etkinlikleri hakkında detaylı bilgi verebilirler. Bu şekilde uygulamamızda öğrencilerin kampüsteymiş gibi üniversite hayatını internet üzerinde yaşamalarını sağlamak hedeflenmiştir.

Projemizde sadece ÇOMÜ öğrencileri birbirleri ile etkileşim içinde olabileceklerdir. Durum, fotoğraf, video ve konum paylaşımını sadece ÇOMÜ öğrencileri yapabilecek, etkinlik ve mekan sahipleri ise sadece etkinlik ve mekanlarıyla ilgili etkileşim yapabilecektir. Uygulamamıza normal kullanıcı olarak sadece ÇOMÜ öğrencileri üye olabilecek ve sadece normal kullanıcılar birbirleri ile arkadaş olabilecektir. Etkinlik ve mekan sahibi herhangi bir kullanıcı normal kullanıcıyı arkadaş olarak ekleyemeyecek ve paylaştıklarını göremeyecektir. Bu şekilde sadece ÇOMÜ öğrencilerinin birbirleri ile rahat bir şekilde etkileşimde olabilmesi için ve kampüste olan olaylardan hemen haberdar olabilmesi için bir uygulama geliştirilmesi hedeflenmektedir. 

Yazılımın Yapacakları

Projemiz yapacağı en temel iş ÇOMÜ öğrencilerinin internet üzerinden birbirleri ile etkileşim halinde olabilmesi için bir ortam sunabilmektir. Bu ortam öğrencilerin birbirleri ile arkadaş olabilmesini, birbirlerine mesaj gönderebilmesini, birbirleri ile paylaşımda bulunabilmesini sağlamayı hedeflemektedir.

Projemize sadece normal kullanıcı olarak ÇOMÜ öğrencileri üye olabilecektir. Projemizde normal kullanıcılar diğer normal kullanıcılar ile arkadaş olabilecektir. Normal kullanıcılar birbirleri ile mesajlaşabilecektir. Arkadaş olan normal kullanıcılar birbirlerinin paylaşımlarını görebilecektir. Normal kullanıcılar profil sayfalarında durum, fotoğraf, video ve konum paylaşabilecektir. Normal kullanıcılar arkadaşlarının yaptıkları paylaşımları beğenebilecek veya yorum yapabilecektir. Normal kullanıcılar rahatsız oldukları kişileri, mekanları veya paylaşımları gizleyebilecektir. Normal kullanıcılar var olan etkinliklere katılabileceğini bildirebilecektir. Normal kullanıcılar katıldıkları etkinliklere yorum yapabilecektir. Normal kullanıcılar gittikleri mekanda konum paylaşabilecektir. Normal kullanıcılar konum paylaştıkları mekanlara yorum yapabilecek ve puan verebilecektir.

Projemize kampüs içerisinde mekan işleten ve etkinlik düzenleyen kişiler de misafir kullanıcı olarak üye olabilecektir. Bu kullanıcılar normal kullanıcılar ile arkadaş olamayacak ve onlar ile sadece kısmi iletişime geçebilecektir. Misafir kullanıcılar eğer mekan sahibi ise sahip olduğu mekanı sisteme ekleyebilecek ve bu mekanda konum paylaşan normal kullanıcıları görebilecektir. Ayrıca bu mekana yapılan yorumları görebilecek ve yorumlara cevap verebilecektir. Etkinlik düzenlemek isteyen misafir kullanıcılar ise sisteme etkinlik ekleyebilecektir. Sisteme etkinlik ekleyen misafir kullanıcılar, ekledikleri etkinliğe katılım sağlayacağını belirten normal kullanıcıları görebilecektir. Ayrıca etkinliğe yapılan yorumları görebilecek ve bu yorumlara cevap verebilecektir.

Projemizde sistem yöneticileri uygulamanın istatistiklerini görebilir, oluşan hataları kontrol edebilirler. Log dosyaları sayesinde sistem yöneticileri kullanıcıların karşılaştıkları hataları görebilir, bu hataları analiz edip çözüm yolu arayabilirler. Ayrıca sistem yöneticilerinin, sisteme eklenen mekanları ve etkinlikleri kontrol edip onaylaması gereklidir. Bu sayede doğru olmayan mekan ve etkinliklerin sisteme eklenmesinin önüne geçilecektir. Sistem yöneticileri tespit ettikleri zararlı kullanıcıları, paylaşımları, mekanları veya etkinlikleri sistemden silebilecektir. 

Bu Yazılım Neden Gerekli?

Uygulamamız, benzer bir çok uygulama olsa da sadece ÇOMÜ öğrencilerine özel olduğu için alanında tektir. Uygulamamızın genel amacı, sadece ÇOMÜ öğrencilerinin rahat bir şekilde kendi aralarında sosyalleşebileceği platform ihtiyacını karşılamaktır.

Uygulamamamız, benzer uygulamaların yanı sıra öğrencilere hem bulundukları kampüse özel bilgileri sunması açısından hem de sadece ÇOMÜ öğrencileri ile etkileşim halinde olabilmelerini sağlaması açısından önemlidir. Benzer uygulamalarda öğrenciler hem hayatlarında hiç görmeyecekleri insanlar ile etkileşim halinde olabiliyorlar hem de bir çok farklı yerde ki hiç gitmeyecekleri etkinliklerden haberdar olabiliyorlar. Bu kadar fazla bilgi ve kişinin olduğu platformlarda gerçekten ihtiyaçları olduğu bilgiyi bulmaları hem zorlaşıyor hem de rahatsızlık duyabilecekleri bir çok insan ile etkileşim halinde olabiliyorlar. Uygulamamız ise öğrencilere hem direk ihtiyaçları olan bilgiyi sunuyor hem de sadece her gün karşılaştıkları insanlar ile etkileşim halinde olabilmelerini sağlıyor. 

Benzer Yazılımlar

Instagram

Sosyal medyada ücretsiz fotoğraf ve video paylaşma uygulaması. Ekim 2010'da kurulduğunda, kullanıcılarına çektikleri bir fotoğraf üzerinde dijital filtre kullanma ve bu fotoğrafı Instagram'ın da dahil olduğu, sosyal medya servisleri ile paylaşma imkanı tanımıştır.

Swarm

İlk olarak 5 Mayıs 2014 tarihinde mobil yazılımlardan iOS ile Android'e uygun olarak, kullanıcıların nerede olduklarını paylaşması için çıkan bir uygulama. Foursquare tarafından üretilen bu uygulamanın işlevi; kullanıcıların olduğu yerde check-in yaparak yerlerini bildirmelerini, yerini bildiren kullanıcının ekli olan arkadaşlarının da bunu görüp ona ne kadar yakında olduklarını öğrenmelerini ve eğer gerçekten birbirlerine yakınlarsa herhangi bir yerde buluşmalarını sağlamaktadır. Foursquare’den bulunduğunuz yerin özelliklerini yorumlayan kisilerden oranın hakkında bilgi edinebilirsiniz. 

Twitter

Kullanıcıların karakter ile sınırlandırılmış "tweet" (Türkçe cıvıldama) adı verilen gönderiler yazabildiği bir sosyal ağ. Jack Dorsey, Noah Glass, Biz Stone, ve Evan Williams tarafından Mart 2006'da oluşturulup Temmuz 2006'da kullanıma açıldı. 2013'te en çok ziyaret edilen 10 internet sitesinden biri oldu ve "internetin SMS'i" olarak tanımlandı. Mart 2016'da 310 milyon aktif kullanıcıya ulaştı.

Facebook

İnsanların başka insanlarla iletişim kurmasını ve bilgi alışverişi yapmasını amaçlayan bir sosyal ağ. 4 Şubat 2004 tarihinde Harvard Üniversitesi 2006 devresi öğrencisi Mark Zuckerberg tarafından kurulan Facebook, öncelikle Harvard öğrencileri için kurulmuştu. Daha sonra Boston civarındaki okulları da içine alan Facebook, iki ay içerisinde Ivy Ligi okullarının tamamını kapsadı. İlk sene içerisinde de; Amerika Birleşik Devletleri'ndeki tüm okullar Facebook'ta mevcuttu. Üyeler önceleri sadece söz konusu okulun e-posta adresiyle (.edu, .ac.uk, vb.) üye olabiliyordu. Daha sonrasında da ağ içine liseler ve bazı büyük şirketler de katıldı. 11 Eylül 2006 tarihinde ise Facebook tüm e-posta adreslerine, bazı yaş sınırlandırmalarıyla açıldı. Kullanıcılar diledikleri ağlara; liseleri, çalışma yerleri ya da yaşadığı yerler itibarıyla katılım gösterebilmektedirler. Ayrıca Facebook, dünyanın en fazla ziyaret edilen sitelerinden biridir.

Kullanılan Teknolojiler

Android

Sosyal Kampüs projemiz Android İşletim Sistemi üzerinde çalışacaktır. Android Google tarafından geliştirilen Linux tabanlı bir ücretsiz işletim sistemidir. Ücretsiz olması ve herhangi bir işletim sistemini, donanımı, geliştirme ortamını zorunlu tutmaması uygulama geliştirmemizde Android İşletim Sistemini tercih etmemizdeki temel sebeptir. Uygulamamızın formatı “.apk”dır. Google tarafından ücretsiz olmasının sebebi, sistemin daha hızlı ve çabuk gelişmesi, birçok popüler marka tarafından kullanılması ve bu sayede reklamlarını daha fazla kişiye ulaşmasını sağlamaktır. Google, Android sistemi üzerinde çalışan Google Play marketteki oyun ve uygulamalar üzerinde aldığı reklamları yayınlayarak para kazanmaktadır.

Java

Projemizde, Android’in desteklediği programlama dili olan Java’yı kullanacağız. Java Sun Microsystems tarafından geliştirilmeye başlamıştır ve şu anda da Oracle tarafından geliştirilmektedir. Java; nesneye yönelik, ortamdan bağımsız çalışan, yüksek seviyeli bir programlama dilidir. Java'nın sık kullanılan sloganlarından biri olan, çevirisi "bir defa yaz, her yerde çalıştır" olan "write once, run anywhere" (WORA), Java'nın derlenmiş Java kodunun Java'yı destekleyen bütün platformlarda tekrar derlenmeye ihtiyacı olmadan çalışabileceğini ima eder. 2016 yılında bildirilen 9 milyon geliştiricisi ile, özellikle istemci sunucu web uygulamaları için olmak üzere, kullanımda olan en popüler programlama dillerinden birisidir.

Android Studio

Projemizin geliştirime ortamı olarak Android Studio IDE kullanacağız. Android Studio, Android uygulamaları geliştirmeye özel tasarlanmış bir geliştirme ortamıdır. Android Studio kullanmamızın sebebi ücretsiz olması, herhangi bir sisteme bağlı ve zorunlu olmaması ayrıca ücretsiz olmasıdır.

Apache

Projemizin web tarafında Apache Web Sunucusu kullanacağız. Apache açık kaynak kodlu, ücretsiz bir Web Sunucu yazılımıdır. Unix, GNU, FreeBSD, Linux, Solaris, Novell NetWare, Mac OS X, Microsoft Windows, OS/2, TPF ve eComStation işletim sistemleri üzerinde çalışabilir. Genelde her ay yenilenerek yeni sürümleri dağıtılmaktadır.

MySQL

Projemizin veritabanı işlemlerinin yönetimi için MySQL kullanacağız. MySQL, altı milyondan fazla sistemde yüklü bulunan çoklu iş parçacıklı (İng. multi-threaded), çok kullanıcılı (İng. multi-user), hızlı ve sağlam (İng. robust) bir veri tabanı yönetim sistemidir.
UNIX, OS/2 ve Windows platformları için ücretsiz dağıtılmakla birlikte ticari lisans kullanmak isteyenler için de ücretli bir lisans seçeneği de mevcuttur. Linux altında daha hızlı bir performans sergilemektedir. Kaynak kodu açık olan MySQL'in pek çok platform için çalıştırılabilir ikilik kod halindeki indirilebilir sürümleri de mevcuttur. Ayrıca ODBC sürücüleri de bulunduğu için birçok geliştirme platformunda rahatlıkla kullanılabilir.
Web sunucularında en çok kullanılan veri tabanı olup ASP, PHP gibi birçok Web programlama dili ile kullanılabilir.

WAMP Server

Projemizin sunucu tarafındaki işlemleri gerçekleştirmek için WAMP Server kullanacağız. WAMP, Windows işletim sistemi üzerinde Apache HTTP Sunucusu, MySQL ve PHP kurulumunu bir arada sunan bir tümleşik sistem yazılımıdır. Kurulumları otomatik yaptığı gibi açık kaynak olarak geliştirilen bu sistemin düzenlenmesi de mümkündür. WAMP ismi; Windows, Apache, MySQL, PHP platformlarının baş harflerinden gelmektedir. Linux'ta kullanılabilen LAMP'in Windows alternatifi olarak da adlandırılabilir.

Android Tarafı

Uygulamayı Android Studio isimli Google’ın da desteğini sağladığı IDE ile geliştirdik. Uygulamanın çalışması için Android işletim sistemli bir cihaz gereklidir. Kullanıcı uygulamayı .apk dosyasını işletim sistemine yüklemiş olmalıdır.


Uygulamayı açtığınızda normal kullanıcı girişi ve mekan sahibi olarak kullanıcı girişi bulunuyor. Ancak giriş yapmanız için öncelikle Sosyal Kampüs’e üye olmanız gerekiyor. Buradan herhangi birisini tercih edip giriş yapabiliyorsunuz. Eğer E-Posta adresiniz ve şifreniz doğruysa girişiniz onaylanıyor.

Üye olma sayfaları mekan sahipleri ve normal kullanıcılar için ayrıdır. Aşağıdaki resimlerde normal kullanıcılar için hesap oluştur sayfasını ve işletmeciler için hesap oluştur sayfası gözükmektedir.



Profil sayfanızda arkadaş listenizi görüntüleyebiliyor ve başka kullanıcıların profil sayfalarında da o kullanıcıların arkadaş listesini görüntüleyebiliyorsunuz. Profil’inizi düzenleyebilir, kayıt olurken vermiş olduğunuz bilgileri güncellemek isterseniz bu kısımdan yapabiliyorsunuz.

İşletmeci Mekan Sahibi profilini de görüntüleyip bu sayfa üzerinden isterseniz bir mekana yorum yapabiliyor, yer bildirimi yapabiliyor, mekanın bilgilerini (cep telefonu vb.) görüntüleyebiliyorsunuz. Aşağıdaki 2 resimde işletmeci profili ve normal kullanıcı profili yan yana gözükmektedir.



Bir kişinin arkadaş listesini görüntülemek için o kişinin profilinde hakkında kısmının sağ altındaki resme tıklanması gerekiyor. Ardından aşağıdakı gibi arkadaş listesi çıkıyor.


Bu arkadaş listesinde ayrıca üstteki resimden de görüldüğü üzere Arkadaş Ekle butonu bulunmaktadır. Bu butona bastığımızda aşağıdaki resimde göründüğü gibi arkadaş ekleme sayfası açılıyor.


Zaman Tüneli’nde başka insanların paylaşımlarını görebiliyor ve siz de bir paylaşım yapabiliyorsunuz. Burada fotoğraf, video, yazı ve mekan ekleyebiliyorsunuz. Zaman Tüneli’nde paylaşım yaparken mekan eklemeniz için o mekanın daha önce bir mekan sahibi tarafından Sosyal Kampüs’e kayıtlı olması gerekiyor. Zaman Tüneli’nin görünümü aşağıdaki gibidir:


Bir kullanıcı veya mekan sahibi dilediği zaman yukarıdaki bar menüden çark simgesine tıklayarak profilini düzenleyebiliyor. Resmi aşağıdaki gibidir.


İşletmeci hesabında kullanıcı Zaman Tüneli’nden farklı olarak İşletmeci Profili ve Mekan yorumları bulunmaktadır. Burada mekan sahipleri üst menüden ev simgesine tıklayarak kendi sayfasını görüntüleyebilir veya yorum simgesine tıklayarak mekana yapılan yorumları görüntüleyebilir. Resimleri aşağıdaki gibidir:



Kullanıcılar üstteki menüden dünya simgesine tıklayarak etkinlikleri ve mekanları görüntüleyebilirler. Dilerlerse bu mekan hakkında mekan profili altına yorum bırakabilirler. Bu yorumlar aynı zamanda işletmecilere kendi hesaplarındaki yorumlar sayfasında görüntülenir:


Sosyal Kampüs uygulamasında kullanıcılar birbirlerine mesaj gönderebilirler. Bu işlemi gerçekteştirmek için üst bar menüdeki mektup simgesine tıklamak gerekiyor. Ardından açılan sayfada mesajlar görüntülenebilir:


Sunucu Tarafı

Uygulama verileri lokal veritabanında ve aynı zamanda internet üzerinde de kaydediliyor. Bu verileri uygulamadan alıp kaydetmek ve sonrasında da bu verileri uygulamada sunmak için bir sunucu kurulması gerekiyor. İnternet üzerinde veri kaydedileceği için normal olarak sunucu tarafında da çalışan bir program ile işlem gerçekleştiriliyor.

Bu programı ise PHP kullanarak geliştirdik. PHP ile geliştirilmiş olan bu program ise arkaplanda Apache, MySQL ile çalışıyor. Sunucuyu Windows üzerinde çalıştıracağımız için WAMP Server ( Windows, Apache, MySQL, PHP) kullanılıyor.

Bir kullanıcı fotoğraf yüklerse bu fotoğrafın diğer kullanıcalara yansıtılması için bir yerde depolanması gerekir. Bu depolama alanı da sunucu bilgisayarda bulunuyor. Zaman Tüneli’nde görüntülenmesi gereken bir fotoğraf için WAMP Server ile uygulama arasında bağlantı kuruluyor ve dosya sisteminden o anda görüntülenmek istenen fotoğraf uygulamaya aktarılıyor.


Veritabanı Tarafı

Sunucu üzerinde kullanıcıların İsim, Soyisim, Kullanıcı Adı, Telefon No., E-Posta adresi gibi verileri veritabanı üzerinde tutuluyor. Bu işlemleri MySQL üzerinden yaptık.

Android uygulaması o an veritabanından erişmek istenilen veriyi veya veritabanına konulması gereken veriyi uygulama ve WAMP Server arasında bağlantı kurarak gerçekleştiriyor. Bir kullanıcı uygulamaya kayıt olduğunda o bilgiler veritabanına ekleniyor veya bir kullanıcı diğer bir kullanıcının bilgilerini görüntülemek isterse profiline giriş yapıyor ve uygulama WAMP Server’a bağlanarak bilgilerinin görülmesi gereken kişinin verilerini veritabanından uygulamaya aktarıyor. Bu şekilde veritabanı bağlantısı gerçekleştirilmiş oluyor.



1 comment:

  1. elinize sağlık çok güzel olmuş 🚀🔥

    ReplyDelete