Giter VIP home page Giter VIP logo

news-site's Introduction

News-site

Идеята за този сайт идва от сайта customerthink.com. Сървърът на сайта е писан от мен на Express, като съм си помагал с тези от упражненията. За client-side съм ползвал react без redux, като за дизайна съм използвал bootstrap 4 и react bootstrap. За routing ползвам react router, а за съобщенията при всяка заявка - react toastify.

Сайтът е разделен на три секции взависимост от това дали клиентът има профил, дали е гост или е администратор.

Когато клиентът е влязъл като гост, може да гледа Home страницата, съответно показаните в нея новини и да разглежда новините по категории. Ако иска да се регистрира, клиентът трябва да предостави име и фамилия, Username и e-mail, като те трябва да са уникални. При успешна регистрация на потребителя се връща токен, който се запазва в localStorage, който ще бъде използван за неговото удостоверяване при заявките.

Токенът е валиден в срок от един ден. Ако клиентът има профил, той може да влезе, като предоставя своя Username и парола. Съответно при грешна информация при влизане или регистрация, на клиента ще се покаже адекватно съобщение с нещата, които трябва да попълни, за да бъде вярна валидацията. Когато клиентът влезе в профила си, той ще може да праща новини към администратора на сайта, който впоследствие има възможността да ги одобри и те да се покажат в сайта. При пращане на новина потребителят трябва да изложи нейното заглавие (което да е уникално), нейното съдържание, категория и може да upload-не снимка като файл. При празни полета или при съществуващо заглавие се изкарва адекватно съобщение. Снимките се пращат като Base64 код, запазват се в папка на сървъра, а в базата се запазва пътят към този файл и се сервира като статичен файл на клиента. Освен това потребителят има възможност да прегледа профила си, в който са показани одобрените и неодобрените му новини. От профила си потребителят може да редактира или изтрива одобрените новини и да гледа как биха изглеждали все още неодобрените новини ако бъдат одобрени. Също така, когато потребителят иска да види детайли за новината, той вече може да оставя коментари под нея.

Ако потребителят има роля на администратор, той вече не може да праща новини, но за сметка на това може да ги одобрява, редактира или отхвърля преди те да се покажат на обикновения потребител. Той може да създава категории и да преименува или изтрива вече съществуващите. Администраторът може да редактира одобрените новини като отиде на страницата с техните детайли. Администраторът не трябва да има достъп до своя профил, понеже той не е нормален потребител.

news-site's People

Contributors

nigosto avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.