Цель  проекта – разработать веб-приложение, которое будет работать как облачное хранилище. Приложение позволит пользователям отображать, загружать, отправлять, скачивать и переименовывать файлы. Создать комплексное веб-приложение, включающее в себя: бэкенд на языке Python с использованием фреймворка Django и СУБД PostgreSQL фронтенд на языках JavaScript, HTML, CSS с использованием библиотек React, Redux, React Router. Развернуть созданное веб-приложение на платформе reg.ru. Инструкция к работе над проектом Пользовательский интерфейс (фронтенд) Вам необходимо разработать приложение, состоящее из следующих основных блоков пользовательского интерфейса: 1. Основная страница приложения. Основная страница должна содержать: общую информацию для пользователя о приложении; кнопку или ссылку для перехода на форму регистрации пользователя с заданием минимальноо набора данных: логин, полное имя, e-mail, пароль. При этом должны проверяться основные ограничения на значения этих полей: -логин только из латинских букв и цифр, первая буква, длина от 4 до 20 символов -e-mail должен соответствовать формату для адресов электронной почты (для проверки можно использовать регулярные выражения) -пароль должен содержать не менее 6 символов, включающий как минимум одну заглавную букву, одну цифру и один специальный символ. При несоответствии требованиям должны отображаться соответствующие информативные сообщения в форме с возможностью исправления и повторной отправки на сервер. -кнопку или ссылку для перехода на форму аутентификации с вводом и проверкой логина на наличие в БД и правильности пароля. Результат неуспешной проверки должен отображаться в форме с возможностью повторной отправки на сервер. При успешной аутентификации должен осуществляться переход на страницу в зависимости от прав пользователя в системе. 2. Административный интерфейс системы для настройки её параметров и управления пользователями и их файловыми хранилищами. Вход в эту часть приложения доступен только пользователям, имеющим признак «администратор» в списке пользователей: список пользователей с выводом признака «администратор» и информации, введённой пользователем в форме регистрации (кроме пароля). В списке должна быть возможность удаления пользователей и изменения значения признака «администратор»; в списке пользователей должна также отображаться информация об их файловых хранилищах – количество и размер файлов, ссылка для перехода к интерфейсу управления файлами в хранилище. 3. Интерфейс управления файловым хранилищем. Вход в интерфейс доступен для любых пользователей. При этом администратор должен иметь право управления хранилищами любых пользователей, включая своё собственное. Обычные пользователи должны иметь доступ только к своему хранилищу: в интерфейсе должен отображаться список файлов, загруженных пользователем в хранилище, с основной информацией о них: имя файла, комментарий, размер, дата загрузки, дата последнего скачивания; для каждого файла должны быть доступны операции: удаление файла, переименование файла, просмотр файла (средствами браузера или через загрузку на локальный диск), копирование специальной ссылки на файл для предоставления доступа другим пользователям или использования его в качестве ресурса в веб-приложениях; должна быть реализована возможность загрузить новый файл в хранилище с указанием комментария. Общие требования к интерфейсу приложения: должна быть максимально использована концепция SPA (single page application), т.е. весь переменный контент на странице (списки пользователей и файлов и т.п.) должен формироваться кодом на JavaScript с использованием библиотеки React. Для получения данных должны использоваться асинхронные api-вызовы к серверу приложения; все страницы приложения должны содержать навигационное меню, формируемое в зависимости от состояния аутентификации пользователя (кнопки «Вход», «Выход» и «Регистрация») время, отводимое на дипломную работу, не предполагает существенных усилий по оформлению приложения с использованием графики, внешних библиотек элементов и т.п. Однако интерфейс приложения должен быть логичным и интуитивно понятным пользователю, имеющему опыт работы с аналогичными веб-приложениями. Серверная часть приложения (бэкенд) должна соответствовать следующим требованиям: Реализация на Python с использованием фреймворка Django и использованием для хранения информации СУБД Postgres. Настройки приложения, такие как параметры подключения к БД, размещения файлового хранилища и т.п., должны быть выделены в коде в отдельный модуль. Загрузка статических ресурсов, таких как HTML, CSS, JS файлов фронтенда, а также api-вызовы, должны обрабатываться единым сервером. В проекте должны быть созданы все миграции, необходимые для инициализации БД в работоспособное состояние – создание БД, таблиц, пользователя admin с правами администратора. Все API-вызовы должны соответствовать семантическим правилам для REST API, для обмена данными между фронтендом и бэкендом используется формат JSON.

Похожие

Посмотрите другие вакансии

Вот самые похожие вакансии

Новый поиск