Цель проекта – разработать веб-приложение, которое будет работать как облачное хранилище. Приложение позволит пользователям отображать, загружать, отправлять, скачивать и переименовывать файлы.
Создать комплексное веб-приложение, включающее в себя:
бэкенд на языке 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.
Разделы:
Опубликован:
06.03.2024 | 12:35 [поднят: 06.03.2024 | 12:35]