Skip to content

QutaibaAlashqar/codaX_trim_app

Repository files navigation

CodaXtrim

Projem, teknoloji alanında uzmanlar ile öğrenciler veya juniorlar arasında etkili bir köprü kurmayı hedefleyen kapsamlı bir platform geliştirmek üzerine odaklandı. Projem, iki temel bölümden oluşuyor: React Native ile geliştirilen mobil uygulama ve Node.js JavaScript kullanılarak inşa edilen Back-end tarafıdır. Mobil uygulamamız, kullanıcı dostu bir arayüzle kullanıcılara etkileşimli ve motivasyon veren bir deneyim sunuyor. Özellikle uzmanlar arasında bir rekabet ortamı sağlıyor; hangi uzmanın ne kadar çok beğeni kazandığına dair. Aynı zamanda, platform 20'den fazla IT alanını kapsıyor ve kullanıcılar arasında deneyim ve tavsiyelerin paylaşılması için bir mesajlaşma platformu bulunuyor. Platformda, kullanıcılar kendi hesaplarını oluşturabilirler. Kullanıcılar, yeni iş fırsatları sunabilirken juniorlar da istedikleri konuları seçerek uzmanlar veya diğer ilgili kişilerle iletişime geçebilirler. Ayrıca, kullanıcılar uzmanlardan kazandıkları deneyimi değerlendirme imkanına sahiptirler. Proje şu anda sınırlı imkanlarla farklı hizmet türlerini içeriyor. İleride, hikaye paylaşımı, güvenlik kısıtlamaları ve diğer geliştirmeler gibi konularda geliştirmeler yapılması planlanıyor. Bu esnek yapı, platformun geniş bir kullanıcı kitlesine hitap etmesini sağlıyor. Geliştirildiği bu sistem, teknolojinin gücünü kullanarak, IT alnında bulunan uzmanlar ve daha az bilgili olan kişiler arasında etkili bir köprü kuruyor.

1 2 3 4 5 7 8 10

Yazılım dünyasında, teknolojinin sürekli evrimi, her geçen gün yeni çözümler ve imkanlar sunuyor. Bu evrime paralel olarak, bu proje de modern yazılım geliştirme araçlarını ve teknolojilerini kullanarak günlük hayatı kolaylaştıran, etkileşimi artıran ve kullanıcı deneyimini zenginleştiren bir platform geliştirmeye karar verildi. Bu projeyi, kendi yaşadığım doğru yeterli bilgi oluşmaktan zorluk çektiğim zorluklardan dolayı böyle bir uygulama geliştirmeye karar aldım. Ancak, bu hedeflere ulaşırken, yalnızca işlevsellik değil, estetik ve kullanıcı dostu bir tasarım da sunmak önceliklerimizden arasında yer alıyordur. Proje iki ana bölümden oluşuyor; React Natıve ile geliştirilen mobil uygulama ve Node.js kullanarak oluşturulan backend tarafı. Bu teknolojiler, uygulamaları oluştururken modern yazılım geliştirme ilkelerine sıkı sıkıya bağlı kalınarak kullanıldı. Agile metodolojiyi benimseyerek, kullanıcı ihtiyaçlarına hızlı bir şekilde yanıt verebilen, esnek ve ölçeklenebilir bir sistem geliştirildi.

1.1. React-Native ve Mobil Uygulama Geliştirme Mobil uygulama geliştirme sürecinde, Facebook'un güçlü ve esnek çerçevesi React Native kullanıldı. React Native, zengin bileşen kütüphanesi ve hızlı geliştirme süreçleri ile hem Android hem de iOS platformlarında sorunsuz çalışan uygulamaların oluşturulmasını sağladı. JavaScript tabanlı React Native, yüksek performanslı ve görsel olarak etkileyici uygulamaların geliştirilmesinde kritik bir rol oynadı. Uygulama için, kullanıcıların sezgisel olarak gezinebileceği, etkileşimde bulunabileceği ve estetik bir tatmin elde edebileceği bir arayüz tasarlandı.

1.2. Node.js ile Back-end tarafı geliştirme Node.js, JavaScript tabanlı bir platformdur ve back-end uygulamaları geliştirmek için kullanılır. Tek dil olarak JavaScript kullanması, geliştirme sürecini kolaylaştırır. Geniş bir modül ekosistemine ve aktif bir topluluğa sahiptir. Proje kurulumundan sunucu oluşturmaya, routing'ten veritabanı entegrasyonuna kadar birçok adımdan oluşan geliştirme süreci vardır. Güvenlik, doğrulama ve test etme gibi adımlar da önemlidir. Node.js, hızlı, güvenilir ve esnek bir back-end geliştirme deneyimi sunar. Hem küçük ölçekli projelerde hem de büyük ölçekli uygulamalarda kullanılabilir. Yüksek performansı ve ölçeklenebilir yapısı, Node.js'i popüler bir tercih haline getirir. Dokümantasyonunun zengin olması, yeni başlayanlar için bile kolaylıkla öğrenilmesini sağlar. Projenin geliştirme süreci, sürekli test, geri bildirim ve iyileştirme döngülerini içeriyordu. mobil platformunda gerçek kullanıcı senaryoları üzerinden yoğun testler gerçekleştirerek, olası hataları ortadan kaldırıldı ve performansı optimize edildi. Kullanıcı geri bildirimlerini her aşamada dikkate alarak, kullanıcıların gerçek ihtiyaçlarına ve beklentilerine uygun çözümler geliştirildi. Farklı yönlerle ilgilenerek, projenin teknik ve tasarım yönlerini güçlendirildi. Bu süreçte, yazılım geliştirme, sistem tasarımı, kullanıcı deneyimi ve proje yönetimi gibi alanlarda kapsamlı deneyimler kazanıldı.

  1. Program Yapısı Modern yazılım geliştirme süreçlerinde, başarılı bir uygulamanın arkasında daima sağlam bir mimari, düşünülmüş bir veritabanı tasarımı ve etkin bir ara katman (API) bulunur. Projede de bu unsurlara özel bir önem verildi. Projede, kullancılar arasında köprü kurmayı amaçlayan. Yazılımnın temelini oluşturan program yapısından, Transact-SQL (T-SQL) ile oluşturulduğu veritabanına ve Express.js ile geliştirildiği API'ye kadar projenin teknik yönlerini detaylı bir şekilde anlatılacak. Projede, modüler ve bakımı kolay bir mimari üzerine kuruldu. Mobil uygulamanın, kullanıcının ihtiyaçlarına hızlı bir şekilde yanıt verebilen, esnek ve ölçeklenebilir yapılar olarak tasarlandı. Her bir modül, belirli bir işlevi yerine getirirken, birlikte bütün bir sistem olarak uyum içinde çalışıyor. Bu yapı, hem geliştirme sürecini hızlandırdı, hem de gelecekteki genişlemeler ve güncellemeler için sağlam bir temel oluşturdu.

2.1. Veritabanı Tasarımı ve T-SQL Projenin veritabanı tasarım süreci, kağıt üzerinde detaylı bir şekilde planlama yaparak başlandı. Bu aşamada, sistemimizin ihtiyaç duyduğu veri türlerini, ilişkileri ve kısıtlamaları belirlendi. Ardından, T-SQL kullanarak bu tasarımı gerçeğe dönüştürüldü. Veritabanın, toplamda 6 farklı tablodan oluşuyor. Her bir tablo, belirli özellikler taşıyor ve birbiriyle mantıksal bağlantılar kurarak veri bütünlüğünü ve ilişkisel bütünlüğü sağlıyordur. Tablolar ve ilişkiler, verimlilik, hız ve güvenlik göz önünde bulundurularak optimize edildi. Raporda, bu tabloların ve ilişkilerinin görsellerini sunulacak, böylece veritabanı yapının daha iyi anlaşılmasını sağlanacaktır.

2.2. API Geliştirme ve Express.js API (Application Programming Interface), bir uygulamanın veritabanı ve diğer hizmetlerle etkileşimini sağlayan önemli bir bileşendir. Express.js gibi framework'ler, API'lerin hızlı ve verimli bir şekilde geliştirilmesini sağlar. Express.js, JavaScript tabanlı bir web uygulama framework'ü olup, genellikle Node.js ile birlikte kullanılır. Express.js kullanılarak geliştirilen bir API, RESTful prensiplerine uygun olarak tasarlanabilir ve JSON formatında veri alışverişi sağlayacak şekilde yapılandırılabilir. Bu sayede, uygulamalar veritabanı ve diğer hizmetlerle güvenli, hızlı ve tutarlı bir şekilde iletişim kurabilirler. Express.js'in esnek yapısı ve geniş bir middleware ekosistemi, API geliştirme sürecini kolaylaştırır ve çeşitli ihtiyaçlara uygun çözümler sunar. Veri işleme, güvenlik, oturum yönetimi gibi birçok önemli özellik Express.js'in temel yetenekleri arasındadır ve bu özellikler API'lerin güvenli ve sağlam olmasını sağlar.

2.2.1. API Hakkında Sonuç Projenin geliştirilmesi sırasında, her bir aşamanın kritik önemi olduğunun farkına varıldı. Yazılımın mimarisinden, veritabanının tasarımına, API'nin geliştirilmesinden, kullanıcı arayüzlerine kadar her detay, son kullanıcıya sunulacağı deneyimin kalitesini doğrudan etkiliyordur. Ekip olarak, bu süreçte kazanıldığı teknik bilgi ve tecrübe, yazılım geliştirme dünyasının derinliklerine dair değerli bir perspektif kazandırdı. Projenin, sadece işlevsel hedeflerine ulaşmakla kalmayıp, aynı zamanda teknik ve estetik bir başyapıt olarak da öne çıkmasını sağlamak için titizlikle çalışıldı. Bu geniş ve detaylı giriş, projenin program yapısı, veritabanı ve API hakkındaki teknik ve tasarım odaklı yönlerine derinlemesine odaklanarak, okuyucuya projenin sadece işlevsel değil, aynı zamanda teknolojik olarak da sofistike olduğunu anlatır. Tasarımın projendeki önemini ve etkisini daha ayrıntılı bir şekilde vurgular. Tasarım sürecinde, kullanıcı deneyimini en üst düzeye çıkarmayı hedefleyen, estetik ve fonksiyonelliği bir araya getiren bir yaklaşım benimsedim. Figma, bu sürecin merkezinde yer aldı ve bana, fikirlerimizi etkili bir şekilde görselleştirebilmemiz için gerekli tüm araçları sunuldu. Figma üzerinde geliştirildiği tasarım sürecenin hakkında bazı detaylar: Yenilikçi Yaklaşım: Her bir tasarımın, kullanıcı ihtiyaçlarını anlamak ve bu ihtiyaçlara yenilikçi çözümler sunmak üzere özenle hazırlandığını belirtmek isterim. Renkler, tipografi ve arayüz elementlerini seçerken, kullanıcıların beğeneceği ve işlevsel beklentilerini daima göz önünde bulunduruldu. Detaylara Dikkat: Figma'da çalışırken, her bir pikselin mükemmel olması için titizlikle çalışıldı. Arayüzün her bir bölümünün, marka kimliğiyle birlikte uyumlu ve kullanıcı dostu olmasını sağlandı. Aynı zamanda, responsive tasarım prensiplerini benimseyerek, tasarımlarımın farklı cihaz ve ekran boyutlarında kusursuz görünmesine özen gösterildi. Sürekli İyileştirme: Tasarım sürecinin, sürekli bir iyileştirme ve öğrenme sürecidir. Kullanıcı testleri ve analizleri yaparak, tasarımlarının etkinliğini sürekli olarak değerlendirip, gerekli düzenlemeleri yapıldı. Bu sayede, kullanıcı memnuniyetini artırmayı ve ürün kalitemi sürekli iyileştirmeyi hedeflelendi.

2.6. Back-End
Projenin backend kısmının geliştirilmesi, Node.js ve Javascript kullanarak gerçekleştirildiği zorlu bir macera oldu. Bu süreçte Visual Studio Coda (VSC) gibi güçlü araçlarla çalışarak birçok yeni şey öğrenildi ve önemli başarılar elde edildi. İşte bu süreç hakkında bazı detaylar: Front-End Frontend geliştirme sürecinin, projenin en can alıcı ve aynı zamanda en zorlayıcı kısımlarından biriydi. React-Native ile mobil uygulamayı geliştirildi.
Flutter ile Mobil Geliştirme: React Native, mobil uygulama geliştirme sürecinde kullanılan güçlü bir frameworktür. JavaScript tabanlı olması ve geniş bir topluluğa sahip olması, hızlı ve etkili bir şekilde mobil uygulamaların geliştirilmesini sağlar. React Native, tek bir kod tabanıyla hem iOS hem de Android platformlarına uyumlu uygulamalar oluşturmayı mümkün kılar, bu da geliştirme sürecini daha verimli hale getirir. Visual Studio Code (VS Code), React Native projeleri için ideal bir geliştirme ortamı sağlar. Hafif yapısıyla performanslı bir deneyim sunar ve zengin özelliklere sahiptir. Otomatik tamamlama, hata ayıklama ve Git entegrasyonu gibi özelliklerle geliştirme sürecini kolaylaştırır. Ayrıca, kullanıcı dostu arayüzü ve geniş eklenti desteği, geliştiricilerin ihtiyaçlarına uygun bir şekilde çalışma ortamını özelleştirmesine olanak tanır. VS Code'un hot reload özelliği, React Native geliştirme sürecini daha da hızlandırır. Yapılan değişikliklerin anında uygulamada görülmesi, hızlı iterasyonlar yapılmasını sağlar. Bu sayede, geliştirme sürecindeki geri bildirim döngüsü kısalır ve uygulama daha hızlı bir şekilde şekillenir. React Native ve Visual Studio Code'un bir araya gelmesi, mobil uygulama geliştirme sürecini daha verimli, etkili ve keyifli hale getirir. Bu teknolojilerin birlikte kullanılması, geliştiricilere güçlü bir altyapı sunar ve modern mobil uygulamaların başarılı bir şekilde oluşturulmasını sağlar.

Genel Sonuç Kendi projemde, modern yazılım geliştirme yaklaşımlarını ve teknolojilerini kullanarak önemli başarılar elde ettim. Mobil platformda çalışan etkileyici bir uygulama geliştirdim ve bu uygulama, kullanıcıların günlük yaşamını daha kolay ve verimli hale getirmek için bir dizi fayda sağlamaktadır. Projenin En Önemli Sonuçları Şunlardır: Mobil Uygulamaları: Mobil uygulamanın, React-Native kullanılarak sorunsuz bir şekilde çalışmaktadır. Kullanıcıların ihtiyaçlarını karşılayacak güçlü ve esnek bir arayüz sağlıyor. Veritabanı ve API Entegrasyonu:
Veritabanı tasarımı ve API entegrasyonu konusunda büyük bir özen gösterildi. Veri bütünlüğünü ve güvenliğini sağlamak için en iyi uygulamaları takip edildi. Bu, platformunun güçlü ve güvenilir bir altyapıya sahip olmasını sağlandı. Kullanıcı Deneyimi:
Kullanıcı deneyimini öncelikli bir hedef olarak belirlendi. Kullanıcı dostu arayüzler oluşturarak, kullanıcıların uygulamasını kolayca kullanmalarını ve keyif almalarını sağlandı. Responsive tasarım prensiplerini benimseyerek, farklı cihazlarda sorunsuz bir deneyim sunuldu. Sonuç olarak, bu projenin başarısı, teknik yetenekler ve kullanıcı odaklı yaklaşımımızın bir sonucudur. Bu projeye katkıda bulunan herkese teşekkür ederim ve gelecekteki başarılar için heyecanla bekliyorum.

3.2. Uygulama Kullanım Klavuzu Bu açıklama, Sistemin nasıl çalıştığını özetleyerek size yardımcı olur: Uzman Tarafı Uzman Hesabı Oluşturma ve Giriş Yapma, Yeni uzmanlar sistemde öncelikle bir hesap oluşturmalı ve mevcut müşteriler kendi hesaplarına giriş yapmalıdır. Bölümler, Uzmanlar, sunulduğu 20’dan falza farklı bölümü onlara uygun olana seçip uyuglama deneyimini başlayabilir, ayni zamanda bize Not bırakabilir. Uzmanın Deneyimi, Uzmanlar, kendi ya da başka bir bölüme ilgi duyup uygun buldukları başka uzmanlarla iletişime geçebilir ve kendi çevrelerini oluşturabilirler. Uzman değerlendirme, Uzmanlar, geçmişte iletişime geçtikleri kişileri değerlendirerek beğeni verirler. Bu beğeniler, hangi uzmanların daha olumlu ve aktif olduğunu kullanıcılara gösterir. Joinour Tarafı Joinour Hesabı Oluşturma ve Giriş Yapma, Yeni Joinour olan kişiler, öğrenci veya stajyer olsunlar, bu uygulamayı kullanmak için öncelikle bir hesap oluşturmalı ve mevcut müşteriler kendi hesaplarına giriş yapmalıdır. Bölümler, Joinourlar, sunulan 20'den fazla farklı bölüm arasından ilgilendikleri konu üzerinde uzmanlara iletişime geçebilirler ve uygulama deneyimlerini başlatabilirler. Aynı zamanda bize not bırakabilirler. Joinour’un Deneyimi, Joinourlar, kendi ya da başka bir bölüme ilgi duyup uygun buldukları başka uzmanlarla iletişime geçebilirler ve kendi çevrelerini oluşturabilirler. Joinour değerlendirme, Joinourlar, geçmişte iletişime geçtikleri kişileri değerlendirerek beğeni verirler. Bu beğeniler, hangi uzmanların daha olumlu ve aktif olduğunu kullanıcılara gösterir.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published