homework5-hw5_grup2 created by GitHub Classroom

Overview

Ödev 5: Genişletilebilirlik - Kitap Uygulaması

Bu haftaki grup ödevinizde, konfigürasyona bağlı olarak MySQL veya MongoDB desteği bulunan ayrıca yine konfigürasyona bağlı olarak loglama işlemlerinin veritabanı, dosya veya loglama kapalı şeklinde değiştirilebildiği bir web uygulaması yapmanız bekleniyor.

Depoda yer alan config.php dosyasına göre uygulama ilgili veritabanı sürücüsünü ve loglama yöntemini seçmelidir.

Örneğin, config.php dosyası içerisinde veritabanı sürücüsü olarak mysql seçildiyse uygulama içerisinde veritabanı ile ilgili tüm işlemler MySQL'e göre çalışmalıdır. Aynı şekilde veritabanı sürücüsü olarak mongodb seçildiyse uygulama içerisinde tüm veritabanı işlemleri MongoDB'e göre çalışmalıdır.

config.php dosyası içerisinde loglama yöntemi olarak null değeri verildiyse herhangi bir loglama işlemi yapılmamalı, file seçildiyse sizin belirlediğiniz bir dosyaya log mesajları yazılmalı, database seçildiyse uygulama içerisinde belirlenen veritabanı sürücüsünde sizin belirlediğiniz bir tabloya/koleksiyona log mesajları kaydedilmelidir.

UML Example

Depoda örnek olması amacıyla bir UML dosyası eklenmiştir. İsteğe bağlı olarak farklı yapılar da oluşturabilirsiniz. Sadece örnek UML'e bağlı kalmayıp ek yapılar oluşturmanız bekleniyor.

Yapılacak olan web uygulaması ile ilgili notlar aşağıda yer almaktadır.


Web uygulaması içerisinde herhangi bir kullanıcı yetki yönetimi beklenmemekte.

Web uygulamasında kitaplar (books) oluşturulmalı, bu kitaplar için kitap ismi yer almalıdır. Ziyaretçi web uygulaması üzerinden bu kitapları isteğe bağlı olarak tekrar düzenleyebilmeli veya silebilmelidir.

Kitaplar içerisinde isteğe bağlı olarak bölümler (sections) oluşturulmalı, bu bölümler için herhangi bir isim (name) belirtilebilmelidir.

Kitap içerisine yazılar (posts) eklenebilmeli, isteğe bağlı olarak kitaptaki herhangi tek bir bölüm ile ilişkilendirilebilir olmalıdır. Bu yazılar içerisinde zengin metin alanı (content) ve yazar (author) yer almalıdır.

Kitaplarda olduğu gibi bölümler ve yazılar için de düzenleme ve silme işlemleri bulunmalıdır.

Kitapların listelendiği anasayfada kitaplarla birlikte yazarların da isimleri gösterilmelidir.

Son olarak kitaplar, bölümler ve yazılar JSON formatında dışa&içe aktarılabilir olmalıdır.


Örnek Uygulama Testi

Aşağıdaki adresler örnek amaçlı verilmiştir. İsteğe göre farklı navigasyon/rota/adres kullanabilirsiniz.

  • index.php - Kitap listesi ve her kitap için yazar isimleri yer alıyor mu?
  • index.php - Listelenen kitaplar için düzenleme formuna gidecek veya silme işlemini yapacak bir buton/link yer alıyor mu?
  • index.php - Yeni kitap ekleme için bir buton/link yer alıyor mu?
  • book-create.php - Yeni kitap ekleme formu gösteriliyor mu?
  • book-store.php - Yeni kitap ekleme işlemi yapıldı mı?
  • book-edit.php?id=1 - Kitap düzenleme formu gösteriliyor mu?
  • book-update.php?id=1 - Kitap güncelleme işlemi yapıldı mı?
  • book-delete.php?id=1 - Kitap silindi mi?
  • book.php?id=1 - Kitaptaki tüm bölümler ve bu bölümlere ait yazılar listelendi mi? (eğer kitap içerisinde bölümler varsa...)
  • book.php?id=1 - Yeni bölüm ekleme için buton/link yer alıyor mu?
  • book.php?id=1 - Kitabın kendisine yazı ekleme için buton/link yer alıyor mu? (bir bölüme ait olmayan)
  • book.php?id=1 - Herbir bölüm içerisinde yazı ekleme için buton/link yer alıyor mu?
  • book.php?id=1 - Herbir bölüm için bölüm güncelleme ve silme butonları/linkleri yer alıyor mu?
  • book.php?id=1 - Herbir yazı için yazı güncelleme ve silme butonları/linkleri yer alıyor mu?
  • section-create.php?book=1 - Kitap için bölüm ekleme formu gösteriliyor mu?
  • section-store.php?book=1 - Kitaba ilgili bölüm eklendi mi?
  • section-edit.php?section=1 - Bölüm için güncelleme formu gösteriliyor mu?
  • section-update.php?section=1 - Bölüm için güncelleme yapıldı mı?
  • section-delete.php?section=1 - Bölüm silindi mi?
  • post-create.php?book=1 / post-create.php?section=1 - Kitaba/bölüme yazı ekleme formu gösteriliyor mu?
  • post-store.php?book=1 - Kitaba/bölüme yazı ekleme işlemi yapıldı mı?
  • post-edit.php?post=1 - Yazı güncelleme formu gösteriliyor mu?
  • post-update.php?post=1 - Yazı güncellendi mi?
  • post-delete.php?post=1 - Yazı silme işlemi yapıldı mı?
  • export.php - Uygulamanın o anki kullandığı veritabanı sürücüsüne göre kitaplar, bölümler ve yazılar JSON formatında dışa aktarılmalıdır. Gruplar isterse kullanıcıya bu dosyayı indirtebilir veya sistemde herhangi bir dizine yerleştirebilir.
  • import.php - Gruplar eğer dosyayı indirttiyse; ziyaretçi bir form ile JSON dosyası yükleyerek uygulamada kitap, bölüm ve yazıların içe aktarılmasını sağlamalıdır. Gruplar eğer export işleminde herhangi bir dizine çıktıyı sağladıysa; aynı dizinden yükleme işlemini yapmalıdır (form göstermeye gerek yok, sadece işlemi yapması yeterli).

Not: Ödevler sadece bireysel değil toplu değerlendirilecektir. Bu sebeple gerekli geliştirmeler için iş bölümlendirilmesinin yapılması gerekiyor. Grup olarak kendi aranızda işleri bölerek beraber çalışma yapın. Kendi aranızda ve diğer gruplarla da yardımlaşabilirsiniz. Eğitmene ve asistanlara da her zaman danışabilirsiniz. 😊

Not: Ödevi olabildiğince genişletilebilir halde geliştirmeye çalışın.

Not: Ödevin ilgili kısımlarında hata kontrollerinin yapılması ve herhangi bir hata durumunda istemcinin bilgilendirilmesi gerekiyor.

Not: Ödevler manuel kontrol edilecektir.


İyi çalışmalar 😉 ✏️

You might also like...
Record created by, updated by and deleted by on Eloquent models automatically.

quarks/laravel-auditors Record created by, updated by and deleted by (if SoftDeletes added) on Eloquent models automatically. Installation composer re

With the help of QR code technologies, digital entry passes can be created, which a user can show at the entry point to pass the door.
With the help of QR code technologies, digital entry passes can be created, which a user can show at the entry point to pass the door.

Navratri_Entry With the help of QR code technologies, digital entry passes can be created, which a user can show at the entry point to pass the door.

The new, most powerful Comic Reader ever created by the human race. Reworked by an Otaku.
The new, most powerful Comic Reader ever created by the human race. Reworked by an Otaku.

FoOlSlideX The new, most powerful Comic Reader ever created by the human race. Reworked by an Otaku. Requirements PHP greater than 7.0 and everything

this is a project done with laravel, I created API.

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

A package that makes it easy to have the `artisan make:` commands open the newly created file in your editor of choice.

Open On Make A package that makes it easy to have the artisan make: commands open the newly created file in your editor of choice. Installation compos

A forum created with Laravel, Socket.io, and Tailwind CSS.

A forum created with Laravel, Socket.io, and Tailwind CSS.

Laravel package for giving admin-created accounts to users via 'set-password' email.

Invytr When making a website where users are created instead of registering themselves, you are faced with the challenge of safely giving users the ac

This is a project that was created for the main purpose of practising front end technology(HTML, CSS and Java-Script) with a litle addition of back-end technology.
This is a project that was created for the main purpose of practising front end technology(HTML, CSS and Java-Script) with a litle addition of back-end technology.

This is a project that was created for the main purpose of practising front end technology(HTML, CSS and Java-Script) with a litle addition of back-end technology. This is a restaurant website which is to offer services such as ordering goods through sending of emails, viewing of any order, signing-in/up for customer's who want to order food, and much more, with also some live features like dates of the day alongside opening and closing working ours. So let's jump right into it.

📑 Invoice Generator - This is an invoicing system created with Laravel,
📑 Invoice Generator - This is an invoicing system created with Laravel,

📊 This is an invoicing system created with Laravel, which allows the user to generate invoices based on product and customer catalogs that are manageable.

Our team created for you one of the most innovative CRM systems that supports mainly business processes and allows for customization according to your needs. Be ahead of your competition and implement YetiForce!
Our team created for you one of the most innovative CRM systems that supports mainly business processes and allows for customization according to your needs. Be ahead of your competition and implement YetiForce!

We design an innovative CRM system that is dedicated for large and medium sized companies. We dedicate it to everyone who values open source software,

Community-created, unofficial PHP SDK for the Skynet Decentralized Internet Network. siasky.net

Skynet PHP SDK This SDK is a community-created, unofficial SDK in PHP for the Skynet Decentralized Internet Network. It is taken as primarily a port f

CMS and high level framework created with Phalcon framework
CMS and high level framework created with Phalcon framework

KikCMS This video will show you the general UX used for the KikCMS and DataTables created inside the CMS

Webird was created to merge the latest PHP and Node.js innovations into a single application stack.

Webird full application stack Webird was created to merge the latest PHP and Node.js innovations into a single application stack. The PHP foundation i

A little PHP script created for uploading custom sharex files to your own webserver
A little PHP script created for uploading custom sharex files to your own webserver

ShareX-Custom-Upload A little PHP script created for uploading text, files, and images to your own webserver. It supports uploading via ShareX, but al

Created simple login system and chat type website using mysql database along with php and html , css and javascript.

Created simple login system and chat type website using mysql database along with php and html , css and javascript.

A simple blog project based on a custom-created MVC framework using PHP & MySQL

A simple blog project based on a custom-created MVC framework using PHP & MySQL. That follows the Facade design pattern.

Allows the date format for
Allows the date format for "created", "modified" and "published" columns to be set within a Lister.

Lister Native Date Format Allows the date format for "created", "modified" and "published" columns to be set within a Lister or Lister Pro instance. W

StickWithIt is an online food ordering website created using PHP. You can view and purchase various items as well as remove items from the cart.

StickWithIt (App Name) StickWithIt is an online food ordering website created using PHP. The database used here is MYSQL database. The tool used here

Laravel Security was created by, and is maintained by Graham Campbell, and is a voku/anti-xss wrapper for Laravel, using graham-campbell/security-core
Laravel Security was created by, and is maintained by Graham Campbell, and is a voku/anti-xss wrapper for Laravel, using graham-campbell/security-core

Laravel Security Laravel Security was created by, and is maintained by Graham Campbell, and is a voku/anti-xss wrapper for Laravel, using graham-campb

Comments
  • Feedback

    Feedback

    :wave:! GitHub Classroom created this pull request as a place for your teacher to leave feedback on your work. It will update automatically. Don’t close or merge this pull request, unless you’re instructed to do so by your teacher.

    In this pull request, your teacher can leave comments and feedback on your code. Click the Subscribe button to be notified if that happens.

    Click the Files changed or Commits tab to see all of the changes pushed to main since the assignment started. Your teacher can see this too.

    Notes for teachers

    Use this PR to leave feedback. Here are some tips:

    • Click the Files changed tab to see all of the changes pushed to main since the assignment started. To leave comments on specific lines of code, put your cursor over a line of code and click the blue + (plus sign). To learn more about comments, read “Commenting on a pull request”.
    • Click the Commits tab to see the commits pushed to main. Click a commit to see specific changes.
    • If you turned on autograding, then click the Checks tab to see the results.
    • This page is an overview. It shows commits, line comments, and general comments. You can leave a general comment below.

    For more information about this pull request, read “Leaving assignment feedback in GitHub”.

    Subscribed: @enesfirat @haydar @rukicad @gokhangemici @shnbetul @esrauluturk @bicerf @nightman413 @ferdanur

    opened by github-classroom[bot] 0
Owner
null
php-rutheeshraja created by GitHub Classroom

demo hosting of this :https://phpcomiconmail.herokuapp.com/ code is in php_rtcamp folder Index.php(demo) validation: .user need to must enter gmail ac

rtCamp Learning Center 0 Dec 24, 2021
Provides a GitHub repository template for a PHP package, using GitHub actions.

php-package-template Installation ?? This is a great place for showing how to install the package, see below: Run $ composer require ergebnis/php-pack

null 280 Dec 27, 2022
PHP GitHub Sponsors is a package that integrates directly with the GitHub Sponsors GraphQL API.

PHP GitHub Sponsors PHP GitHub Sponsors is a package that integrates directly with the GitHub Sponsors GraphQL API. Using it, you can easily check if

GitHub PHP 101 Nov 2, 2022
Run your WP site on github pages, php innovation award winner https://www.phpclasses.org/package/12091-PHP-Make-a-WordPress-site-run-on-GitHub-pages.html

Gitpress Run wordpress directly on github pages Gitpress won the innovation award for may 2021 Read more about this https://naveen17797.github.io/gitp

naveen 13 Nov 18, 2022
Borgert is a CMS Open Source created with Laravel Framework 5.6

A simple CMS to start projects in Laravel containing some modules. Blog, Pages, Products, Mailbox, Image Gallery, Log Viewer and Users. Frontend: Blog

Borgert Inc. 300 Dec 30, 2022
FacEssential is a Core for PMMP, it gathers all kind of plugins needed to create a faction server. It was created from scratch by Clouds#0667.

FacEssential FacEssential is a Core for PMMP, it gathers all kind of plugins needed to create a faction server. It was created from scratch by Clouds#

Zoumi 10 Jun 13, 2022
This is a Hostel Management system project is created using PHP and MYSQL

Hostel-Managment-System-PHP This is a Hostel Management system project is created using PHP and MYSQL. Developed as a package for the subject Relation

Hari Ram 5 May 10, 2022
Ransomware with automatic Coinbase Commerce integration created in C# (Console) and PHP

AWare — C# Ransomware Ransomware with automatic Coinbase Commerce integration created in C# (Console) and PHP PD: AWare is just a proof of concept, wi

in the space 26 Sep 16, 2022
This package was created to provide simple way to manipulate arrays in PHP

PHP Collections This package was created to provide simple way to manipulate arrays in PHP. The package was inspired by the Laravel Collections.

Wojciech Mleczek 13 Jul 26, 2021
Logs which process created or modified a record

It is sometimes very useful to know which process created or modified a particular record in your database. This package provides a trait to add to your Laravel models which automatically logs that for you.

ORIS Intelligence 98 Dec 4, 2022