Code Monkey home page Code Monkey logo

coconutcloud's Introduction

CoconutCloud

Привет! Предлагаю вашему вниманию простое облачное хранилище, реализованное на Django и React. С помощью приложения вы можете:

  • загружать и скачивать файлы из облака
  • делиться файлами с другими передавая ссылки на скачивание файлов
  • изменять имена файлов, добавлять к ним комментарии
  • получать информацию о размере загруженных файлов

Проект развёрнут по адресу: http://194.58.121.183/

Развёртывание проекта локально

Вы можете развернуть проект локально. Для этого проделайте следующие шаги:

  1. Склонируйте репозиторий:
git clone https://github.com/Votchitsev/CoconutCloud.git 
  1. Через виртуальное окружение python установите зависимости:
cd CoconutCloud/
python3 -m venv env
source env/bin/activate
pip install -r requirements.txt
  1. Создайте базу данных PostgreSQL
  2. В корне проекта создайте файл .env в котором определите необходимые переменные окружения:
SECRET_KEY // секретный ключ django
DEBUG // режим отладки True или False
ALLOWED_HOSTS // допустимые хосты (например, для запуска локально укажите 127.0.0.1)
// Данные для подключения к базе данных (к той, что создали в пункте 4):
DB_NAME // имя базы данных (например: my_database)
DB_USER // имя пользователя базы данных (например: admin)
DB_PASSWORD // пароль для доступа к базе данных
DB_HOST // хост базы данных (например: localhost)
DB_PORT // порт базы данных (например: 5432)
  1. Выполните миграции
python manage.py migrate
  1. В директории frontend/ установите NPM зависимости.
npm install
  1. В файле frontend/src/api/requests.js в переменной BASE_URL установите url, на который будут отправлятся запросы на сервер. Например: http://127.0.0.1:8000/api/ После этого пересоберите бандл фронтенда
npm run dev
  1. Запустите приложение.
python manage.py runserver

Структура проекта

Проект основан на Django и включает в себя два приложения:

  • coconut_cloud - бэкенд часть проекта, реализованная на django rest framework
  • frontend - фронтенд часть проекта, которая реализована на react

Связь фронденда с бекендом осуществляется через шаблон django, находящийся в директории frontend/templates/frontend/index.html.

Создание пользователя, регистрация

Создание администратора

Создать администратора вы можете с помощью команды python manage.py createsuperuser. В проекте не используется стандартный административный раздел django. Авторизация под администратором происходит через общую форму авторизации для всех пользователей.

Зайти в административный раздел вы можете по ссылке http://<адрес сайта>/admin/. Обычным позователям доступ к разделу ограничен.

Там есть список пользователей с их информацией. Вы можете удалить пользователя или изменить его статус (администратор/пользователь). Список файлов других пользователей находится на главной странице.

Регистрация в приложении

Вы можете зарегистрироватся в приложении через форму регистрации, перейти к которой можно через шапку сайта (справа пункт меню Sign Up), или через конпку "Try" на стартовой странице.

Вход в личный кабинет осуществляется через шапку сайта - "Sign In". Для авторизации используются адрес электронной почты и пароль.

Основной функционал

Добавление файла

Добавить файл в хранилище вы можете через кнопку Add в нижнем правом углу. Добавление файлов осуществляется по одному.

Удаление, переименование, загрузка файла. Комментарий

Чтобы управлять файлом вы можете выделить его. После этого внизу появится панель для управления.

rename - переименовать файл.

change comment - добавить или изменить комментарий.

download - загрузить файл.

get download link - получение ссылки для скачивания файла третьими лицами. Ссылку можно передать другу, знакомому, коллеге. Они могут по ней скачать файл без регистрации.

delete - удалить файл.


coconutcloud's People

Contributors

votchitsev avatar

Watchers

 avatar

Forkers

malins062

coconutcloud's Issues

Форма комментария

По ссылке "Change Comment" в меню редактирования файла открывается форма с названием "Rename File". Также она не закрывается. В консоли ошибок нет.
image

Административный раздел

Под админом зашел и вижу теже файлы, что и моего пользователя, т.е. как будто хранилище одно на всех.
По заданию было что администратор имеет доступ к хранилищам пользователей, но это все таки должен быть заход в хранилище конкретного пользователя из админки, а у администратора свое тоже должно быть отдельно.

Личный кабинет

При отображении личного кабинета, если нет файлов добавить информацию об этом и если нужно подсказку.

Ошибка при загрузке файла с таким же именем и пустого файла

При попытке загрузить второй файл с тем же именем получаю тоже пустую страницу. В общем видимо это реакция на разные ошибки такая и это не правильно. Пользователь должен что-то осмысленное видеть, если действие некорректно. Но и оба действия вроде бы выглядят разумными почему бы не хранить пустые файлы или несколько файлов с одинаковым именем.

Удаление файла

При удалении файла в личном кабинете файл не удаляется физически

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.