/CSCB025

Home Manager

Primary LanguageCSS

CSCB025

CSCB025 - Практика по програмиране и реализация на бази данни

Описание

Онлайн магазин - Самостоятелна работа по програмиране и реализация на бази от данни.

Избор на технологии

Избор Тип Причина за избор
PHP Език за програмиране Лесен за писане, гъвкав и динамичен език с изключително бърза последна версия. Към текущият момент ~80% от сървърните уеб приложения ползват PHP. Отвореният код, множеството библиотеки и голямото общество спомага за лесно решаване дори на най-сложните проблеми.
Plates PHP система за дизайн Лесна за употреба и изключителна бърза система, с отлично преизползване на изгледи и наследяване и споделяне на данни между страници и темплейти.
PHPAuth PHP библиотека за автентикация Изключително сигурна библиотека с автоматична защита и email поддръжка.
MySQL СУБД Лесен за употреба, изключително продуктивна и сигурна база от данни с малък размер и отворен код.
Obaju Уеб темплейт Темата отговаря отлично на заданието за изработка на уеб магазин за дрехи с отличен UX и мобилна версия.
ElaAdmin Админ темплейт Административния облик е изключително подходящ за нуждите на онлайн магазин.
Apache HTTP Server Уеб сървър Лесен за конфигурация и изключително сигурен и надежден уеб сървър.
AWS Хостинг Лесен за контрол и конфигурация - целия сървър и първоначално стартиране и настройка са конфигурирани в AWS CloudFormation темплата към cscb025_cloudformation_template.yml

Цели на проекта

  • Работа в екип - Разработен самостоятелно поради местоположението и възможността ми.
  • Работа със система за споделена работа върху код - Използвано е GitHub за съхраняване и споделяне на кода - https://github.com/miglen/CSCB025
  • Писане на документация - Документацията е качена в хранилището, както и вградена в кода под формата на коментари.
  • Представяне на собствена разработка - Като изключим помощтните библиотеки, проектирането на ДБ, логиката на магазина и конфигурацията на всички компоненти са изцяло моя разработка + запълване с примерни продукти
  • Познания по програмиране на поне един програмен език - В случая това е PHP.
  • Познаване на поне едно СУБД - mySQL
  • Познания по проектиране на бази данни и SQL - Приложени в изграждането, както и в имплементирането на заявките на приложението.
  • Създаване на умения за работа във фирмена среда
  • Разработеният продукт трябва да е резултат от самостоятелно проучване и разработване - Би могло да се проследи и провери работата по проекта в моята github история към хранилището: https://github.com/miglen/CSCB025/commits/master
  • Прилагане на изучаваното в университетските курсове - приложения са умения от следните курсове: CSCB688 Скриптови езици за Интернет (PHP), CSCB405 Бази данни и системи за управление на бази данни, CSCB536 Моделиране и реализация на релационни бази данни, CSCB205 Структури от данни, CSCB206 Алгоритми и програмиране, GENB006 Увод в алгоритмите и програмирането, CSCB024 Практика по програмиране и интернет технологии, CSCB411 Операционни системи (Linux), CSCB702 Електронна търговия, CSCB734 Информационни системи "клиент - сървър" и CSCB756 Дизайн и публикуване в Интернет

Структура на базата от данни

DB Schema

  • Продукти (products)
    • product_id - Уникален идентификатор
    • title - Заглавие
    • text - Описание
    • category_id - Категория (category_id)
    • price - Цена
    • quantity - Количество
  • Категории (categories)
    • category_id - Уникален идентификатор
    • title - Заглавие
    • parent - Категория родител
  • Страници (pages)
    • page_id - Уникален идентификатор
    • title - Заглавие
    • text - Текст
  • Потребители (users)
    • user_id - Уникален идентификатор
    • username - Потребителско име
    • password - Парола (SHA512 хеширана)
    • is_admin - Администратор?
  • Поръчки (orders)
    • id - Уникален идентификатор
    • user_id - Потребител
    • products - Списък от закупени продукти

Структура на хранилището

  • README.md - Прочети ме (този файл)
  • cscb025_cloudformation_template.yml - CloudFormation темплейт за инсталация на магазина.
  • ./files/
    • ./php - PHP файлове с основна функционалност
    • ./css - Статични CSS файлове
    • ./js - Java Script статични файлове

Инсталация

TODO:

  • Да инсталирам pma за дб-то
  • Да вкарам категории и да настроя навигацията
  • Да вкарам страници и да ги напълня с WYSIWYG редактор (онлайн).
  • Да направя търсенето да работи в страници и продукти.
  • Да вкарам продукти и да ги визуализирам
  • Да инсталирам и конфигурирам клас за управление на потребителите - вход/изход,регистрация. Ако нивото е администратор - линк към администрация.
  • Търсенето да работи за страници и продукти.
  • Свързване на всички линкове във футъра
  • Да оптимизирам директориите да показват и продукти в под-директориите.
  • Оптимизиране на изгледа на регистрацията, да не работи ако потребителя е влязъл.
  • Страница за профил с опция за редакция, да не работи ако потребителя не е влязъл.
  • ЧЗВ и примерни въпроси/отговори.
  • Повечето страници да използват единен темплейт (page.php)
  • Кошница - първоначална страница
  • Кошница - поръчките да се запазват в дб, страница с поръчки
  • База с контакти, в която да се пазят записите от формата за контакт + абонамент.
  • Страница с кошница, продуктите да се добавят в нея.
  • Администрация - първоначален изглед и логин
  • Администрация CRUD категории
  • Администрация CRUD страници
  • Администрация CRUD продукти
  • Администрация CRUD поръчки
  • Оптимизиране на темплейтите и файловете
  • Оптимизиране на заявките, индексиране
  • Запълване на страниците със съдържание
  • Добавяне на допълнителни продукти +10.
  • Оформяне на инсталационните скриптове за AWS
  • Обновяване на readme, диаграми и схеми.
  • Готов за предаване.