https://github.com/betty2310/cppdrive
Bài tập lớn File-sharing IT4062 - Thực hành lập trình mạng - Hedspi
https://github.com/betty2310/cppdrive
cloud file-sharing tcp-client-server tcp-socket
Last synced: 4 months ago
JSON representation
Bài tập lớn File-sharing IT4062 - Thực hành lập trình mạng - Hedspi
- Host: GitHub
- URL: https://github.com/betty2310/cppdrive
- Owner: betty2310
- License: unlicense
- Created: 2023-11-17T03:54:22.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-01-06T04:21:57.000Z (over 2 years ago)
- Last Synced: 2024-09-07T04:28:54.569Z (over 1 year ago)
- Topics: cloud, file-sharing, tcp-client-server, tcp-socket
- Language: C++
- Homepage:
- Size: 163 KB
- Stars: 0
- Watchers: 1
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
🌸 CppDrive
CppDrive is a simple, lightweight file-sharing application built in C/C++.
Hoặc đơn giản là bài tập lớn môn thực hành lập trình mạng - IT4062 Hedspi k65 HUST, chủ đề file-sharing 🥴
This app simulates the action when you ssh to your cloud server then use unix-like commands to do file operations.

## Features
- [x] User-friendly shell interface, offering a familiar environment for developers.
- [x] Secure authentication using hashed passwords.
- [x] Comprehensive file and folder management: creation, deletion, renaming, moving, copying, searching, viewing (cat), along with upload and download capabilities.
- [x] File and folder sharing feature, allowing permissions to be set for other users.
- [x] Robust end-to-end encryption for enhanced security.
- [x] Detailed logging system.
## Structure
``` bash
.
├── CMakeLists.txt
├── app
│ └── main.cpp # Application source code.
├── include
│ ├── example.h # Library header file.
├── src
└── example.cpp # Library source code.
```
Sources go in [src/](src/), header files in [include/](include/), main programs in [app/](app).
If you add a new executable, say `app/hello.cpp`, you only need to add the following two lines to [CMakeLists.txt](CMakeLists.txt):
```cmake
add_executable(main app/main.cpp) # Name of exec. and location of file.
target_link_libraries(main PRIVATE ${LIBRARY_NAME}) # Link the executable to lib built from src/*.cpp (if it uses it).
```
## Setup
### Dependencies
+ [CMake](https://cmake.org/)
+ C++ Compiler: `g++`, `clang` or `msvc`
+ `zip`, `unzip`, [`fd`](https://github.com/sharkdp/fd)
On **Ubuntu**:
```
$ sudo apt-get install build-essential cmake fd-find zip unzip libssl-dev
$ ln -s $(which fdfind) ~/.local/bin/fd # or add it to your PATH
```
> [!NOTE]
> Should use branch `tokyo` for stable version. `master` branch may have some error now.
## Building
Build by making a build directory (i.e. `build/`), run `cmake` in that dir, and then use `make` to build the desired target.
Example:
```bash
$ mkdir build && cd build
$ cmake ..
$ make
$ ./main
```
> [!WARNING]
> After register account, should exit app, then login again, login right after register may contain error.
### Visual Studio Code
Install the following extensions:
- [C/C++](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools)
- [CMake Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools)
## Authors
+ Dương Hữu Huynh - 20205087