Skip to content
forked from yutfut/VVT-i

💽 A console utility that provides terminal access to remote file storage. User-friendly interface allows to be used in any Unix-like systems

License

Notifications You must be signed in to change notification settings

Andrey123815/VVT-i

 
 

Repository files navigation

🔑 VVT-i

Linux-user-friendly console utility that provides terminal access to remote file storage with different user modes


Code analysis ⚙️📈📈

Build Status GitHub commit activity (branch) code style: cppcheck
CI CI

📝 Content table


🧐 About project

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

Решением этой проблемы является создание продукта, который будет максимально простым в использовании и предусматривать работу с неавторизованными пользователями.

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

📚 Libraries installing

  • Установка PostgreSQL & LibPQXX:
  sudo apt install postgresql postgresql-contrib
  
  sudo apt install libpqxx-dev
  • Установка fmt:
  sudo add-apt-repository universe
  
  sudo apt update
  
  sudo apt install libfmt-dev
  • Установка Boost:
  sudo apt-get install libboost-all-dev
  • Установка Mailio:
  git clone git://github.com/karastojko/mailio

  cd mailio

  mkdir build

  cd build

  cmake ..

  sudo make install
  • Установка OpenSSL & JWT:
  sudo apt install nlohmann-json3-dev 
  
  sudo apt install libgtest-dev
  
  sudo apt install libssl-dev
  
  mkdir build
  
  cd build
  
  cmake ..
  
  cmake --build . -j
  
  sudo make install

🏁 Launching the application

Пошаговая инструкция, как запустить приложение у себя

Введите команду для клонирования репозитория приложения:

git clone git@github.com:yutfut/VVT-i.git

Через терминал зайдите в директорию сервера и выполните следующие команды:

sudo ./server.sh build

sudo ./server.sh create --config

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

Запуск сервера:

sudo ./server.sh start

Запуск клиента:

./vvti_client

Для получения информации о командах введите в терминале:

help

🌟 Usage in real life

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

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

⛏️ Libraries & technologies

PostgreSQL - Database

LibPQXX - The C++ connector for PostgreSQL

Boost - Multiprocessing Logging & gzip file compression

Epoll - Asynchronous Multiplex Technology

JWT - JWT Authorization Technology

Mailio - Send Emails Module

LIBMAGIC - Getting file type for compression

Languages

C++ SQL

✍️ Developers

@And_Dayk - Дьяконов Андрей [Team Lead, Database development]

@kirill555101 - Каташинский Кирилл [Server development]

@yut_fut - Голубев Сергей [Team Lead, Client development]

@skvortsova_na - Скворцова Наталья [Filesystem development & Integration Db and FS to server]

🙇 Mentors & tutors

Наш ментор:

@znjuko - Никита Черных

Преподаватели:

@Ciberst - Александр Жиров

И вся команда Технопарк VK!

🔆 Sources for project presentation

Ссылка на презентацию: Презентация

About

💽 A console utility that provides terminal access to remote file storage. User-friendly interface allows to be used in any Unix-like systems

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 93.9%
  • Shell 2.7%
  • CMake 2.2%
  • Other 1.2%