/pcd-project

Primary LanguageCGNU Affero General Public License v3.0AGPL-3.0

Concurrential Programming Project

Introduction

C++ application using a custom TCP protocol for file transfer and compression. It features SQLite-based authentication and supports various file and directory operations, all of which have custom implementations.

Features

  • Custom protocol over TCP sockets
  • SQLite for user login
  • File transfer: upload, download, copy, move, delete
  • Directory management: create, list
  • Compression: multiple formats and levels
  • Admin commands for server status and settings

User Commands

  • cwd: Get current working directory
  • download : Download file from server
  • rm : Remove file/directory
  • mkdir : Create new directory
  • compress : Compress files (options: --level, --format)
  • cd : Change directory
  • mv : Move/rename file or directory
  • cp : Copy file or directory
  • getid: Get session identifier
  • logout: Logout from session
  • login : Login to server
  • upload : Upload files
  • ls: List files in current directory
  • ping: Check server connectivity
  • help: Display help message

Admin Commands

  • status: Get server status
  • get_settings: Retrieve current settings
  • set : Update settings
  • connections: Display active/pending connections
  • clean: Clean server by removing all files and directories

Database Management

The utils folder contains scripts for creating and interacting with the SQLite database. These scripts are essential for initializing and maintaining the database structure used for user authentication.