Implementation of the test task from iTexUS.

Overview

👍 Тестовое задание от iTexUS

Демонстрация: itexus.nextwell.top

🔥 Задача

Условия, требования и ТЗ:

  • Реализовать MVC + route приложение на PHP.
  • Реализовать свой самописный проект, который с лёгкостью можно расширять.
  • Реализовать три страницы:
    1. главная;
    2. вход/авторизация пользователя;
    3. личный кабинет, где можно отредактировать имя пользователя

🛠️ База данных

Подключение

  • Параметры для подключения к базе данных MySql еобходимо прописывать в файле /config.php, расположенного в корне приложения.
  • SQL-дамп для создания таблицы, необходимой для работы с приложением, расположен в файле/itexus.sql в корне приложения (TODO: надо инсталлер написать с проверкой на отсутствие таблицы).

💡 Технические требования

Параметры

  • Сервер: Apache
  • PHP: > 8.1.5
  • MySQL: > 8.0.29
  • Драйверы: PDO-driver
  • PHP-расширения: MySQLi

💛 Особенности

Условия, требования и ТЗ.

  • Реализовано MVC + route приложение на PHP.
  • Реализовано две роли: администратор и пользователь. Новый пользователь регистрируется с правами пользователя. Администратор имеет некоторые дополнительные возможности (например блокировать/разбокировать пользователей, просматривать скрытую информацию).

    Данные для доступа от лица администратора:
    Логин: Admin
    Пароль: admin

  • Кроме основных, для MVP были реализованы следующие страницы и соответствующий функционал:
    1. главная (с отображением списка последних зарегистрированных пользователей)
    2. с раница регистрации (с хешированием пароля перед занесением в Базу Данных)
    3. страница авторизации (с проверкой пароля и созданием PHP-сессии)
    4. личный кабинет пользователя (с отображением информации о пользователе [если она была указана] и поздравлени с приближающимся днём рождения [если осталось меньше недели])
    5. страница редактирования личных данных (включая смену пароля, все данные валидируются сервером, который сообщает об ошибках в ведённых данных)
    6. страница просмотра своего профиля (на ней не отображается информация о балансе, и не отображается информация, которая не указана, а также не отображается никакая информация в случае, если этот пользователь заблокирован [кроме администратора, ему информация о пользователе всё равно отображается с пометкой о блокировке пользователя])
    7. страница просмотра профилей других участников (им доступна только указанная информация, баланс доступен только администратору)
    8. страница ошибки 404 (отображается, когда пользователь запрашивает несуществующую страницу)
    9. страница ошибки 403 (отображается, когда пользователь пытается посетить страницу, доступ к которой для него закрыт [в том числе для авторизованных, запрашивающие действия администратора])
    10. страница подтверждения выхода из аккаунта (при подтверждении -- текущая сессия будет закрыта])
  • Добавлено минимальное стилевое оформление для более презентабельного внешнего вида при демонстрации работы приложения.

You might also like...
Modern task runner for PHP

RoboTask Modern and simple PHP task runner inspired by Gulp and Rake aimed to automate common tasks: writing cross-platform scripts processing assets

Awesome Task Runner

Bldr Simplified Build System/Task Runner Uses Yaml, JSON, XML, PHP, or INI for configs Quick Usage To develop, run ./script/bootstrap, and then ./scri

Pure PHP task runner

task/task Got a PHP project? Heard of Grunt and Gulp but don't use NodeJS? Task is a pure PHP task runner. Leverage PHP as a scripting language, and a

Modern task runner for PHP

RoboTask Modern and simple PHP task runner inspired by Gulp and Rake aimed to automate common tasks: writing cross-platform scripts processing assets

A PHP Module, that help with geneting of task script for playwright and send it node.js

A PHP Module, that help with geneting of task script for playwright and send it node.js

Task for GrumPHP that adds CSS linting support with stylelint. An easy way to enforce convention and avoid errors in your styles

grumphp-stylelint-task Installation Stylelint is a static analysis tool for styles. A mighty, modern linter that helps you avoid errors and enforce co

🐺 Asynchronous Task Queue Based on Distributed Message Passing for PHP.
🐺 Asynchronous Task Queue Based on Distributed Message Passing for PHP.

🐺 Asynchronous Task Queue Based on Distributed Message Passing for PHP.

Flow Framework Task Scheduler

This package provides a simple to use task scheduler for Neos Flow. Tasks are configured via settings, recurring tasks can be configured using cron syntax. Detailed options configure the first and last executions as well as options for the class handling the task.

A versatile and lightweight PHP task runner, designed with simplicity in mind.
A versatile and lightweight PHP task runner, designed with simplicity in mind.

Blend A versatile and lightweight PHP task runner, designed with simplicity in mind. Table of Contents About Blend Installation Config Examples API Ch

Manage your Laravel Task Scheduling in a friendly interface and save schedules to the database.
Manage your Laravel Task Scheduling in a friendly interface and save schedules to the database.

Documentation This librarian creates a route(default: /schedule) in your application where it is possible to manage which schedules will be executed a

Task Scheduling with Cron Job in Laravel

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

 Laravel-Tasks is a Complete Build of Laravel 5.2 with Individual User Task Lists
Laravel-Tasks is a Complete Build of Laravel 5.2 with Individual User Task Lists

An app of tasks lists for each individual user. Built on Laravel 5.2, using 5.2 authentication and middleware. This has robust verbose examples using Laravel best practices.

A full-featured personal project management tool with task boards.

Dingo Project Management A full-featured personal project management tool with task boards. Installation You can install using the following way: Clon

mini Project in Laravel and vue js. Real World Laravel 8x + vue js Dashboard.Task management and project management system
mini Project in Laravel and vue js. Real World Laravel 8x + vue js Dashboard.Task management and project management system

mini Project in Laravel and vue js. Real World Laravel 8x + vue js Dashboard.Task management and project management system. Dashboard features such as: Complete Dashboard, Custom Authentication, Email Verification, custom-login-register-forgot password (without jetstream).

Modern and simple PHP task runner inspired by Gulp and Rake aimed to automate common tasks

RoboTask Modern and simple PHP task runner inspired by Gulp and Rake aimed to automate common tasks: writing cross-platform scripts processing assets

xcron - the souped up, modernized cron/Task Scheduler for Windows, Mac OSX, Linux, and FreeBSD server and desktop operating systems.

xcron is the souped up, modernized cron/Task Scheduler for Windows, Mac OSX, Linux, and FreeBSD server and desktop operating systems. MIT or LGPL.

SilverStripe Model Annotations Task

A SilverStripe Task to generate data object model annotations for defined db fields. Also for configs from data extensions.

Laravel Cron Scheduling - The ability to run the Laravel task scheduler using different crons

Laravel Cron Scheduling Laravel Task Scheduling is a great way to manage the cron. But the documentation contains the following warning: By default, m

TODO List is a task management system

TODO List is a task management system. It allows you to create tasks, change their statuses and put labels. Registration and authentication are required to work with the system.

Owner
Vladimir Mihalevich
Vladimir Mihalevich
Thruway - an open source client and router implementation of WAMP (Web Application Messaging Protocol), for PHP.

PHP Client and Router Library for Autobahn and WAMP (Web Application Messaging Protocol) for Real-Time Application Messaging

Voryx 661 Nov 14, 2022
QaraTMS is open source test case, test suites, test plans and test runs management tool.

QaraTMS - Open Source Test Management System QaraTMS is open source test management software for managing test suites, test cases, test plans, test ru

Alex H 29 Dec 22, 2022
This is a Task Manager system for managing your task. You can categorize your tasks and upload music to the project And a whole host of other features

taskManager Login and register Each user can have their own task Categorize tasks by creating folders Edit and Delete Folders Search for Tasks Show nu

masoudharooni 11 May 22, 2022
DooTask is a lightweight open source online project task management tool that provides various document collaboration tools, online mind mapping, online flowcharting, project management, task distribution, instant IM, file management and other tools.

DooTask is a lightweight open source online project task management tool that provides various document collaboration tools, online mind mapping, online flowcharting, project management, task distribution, instant IM, file management and other tools.

kuaifan 3k Jan 5, 2023
Task Manager is a Task Management Module/Tools for wordpress

Task Manager is a Task Management Module/Tools for wordpress, where you can create, manage, assign user, update and delete different tasks. It has all features of Task Management Application.

Louie Sanchez 2 Dec 31, 2021
Patchstack Test task Laravel&Vue CRUD

Patchstack Test Task - Laravel & Vue CRUD SPA Written with Laravel and Vue2 using mix. Installation Clone this repository Run "composer update" comman

Crypto Rookie 3 Aug 25, 2022
Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests.

This is a port of the VCR Ruby library to PHP. Record your test suite's HTTP interactions and replay them during future test runs for fast, determinis

php-vcr 1.1k Dec 23, 2022
this package can help you to test race condition in Laravel Feature Test

Laravel Async Testing this package can help you to test race condition in Laravel Feature Test Requirements Laravel versions 5.7, 6.x, 7.x and 8.x PHP

Recca Tsai 61 Nov 5, 2022
SNIA SSS PTS test suite based on SNIA's Solid State Storage Performance Test Specification for Transcend products

SNIA-SSS-PTS ABSTRACT SNIA SSS PTS describes a solid state storage device-level performance test methodology, test suite and reporting format intended

Transcend Information, Inc. 6 Nov 2, 2022
A PHP implementation of a bare task loop.

TaskLoop A PHP implementation of a bare task loop. Installation. $ composer require thenlabs/task-loop 1.0.x-dev Usage. The file example.php contains

ThenLabs 1 Oct 17, 2022