FileVault is a secure file-sharing web application. It allows users to upload, download, manage, and delete files securely through a user-friendly interface. Designed as a portfolio project to showcase full-stack development skills.
- Secure user authentication (register & login)
- Upload and download files
- File metadata (filename, upload date, size, type)
- Delete files
- SQL Server backend with metadata tracking
- Encrypted Files stored securely on disk
- Dockerized for easy deployment
- Backend: C# (.NET 8 Minimal APIs)
- Database: SQL Server
- Frontend: ReactJS
- Storage: Filesystem-based storage
- Containerization: Docker + Docker Compose
- .NET 8 SDK
- Docker
- Node.js & npm (for React frontend)
- React 18+ (installed via create-react-app or Vite)
git clone https://github.com/ChrisLPJones/FileVault.git
cd FileVaultcd Backend
cd Docker
docker compose up --buildThis will start the backend SQL Server container with pre-configured settings.
cd Backend
dotnet restore
dotnet runThis will start the backend api server.
cd Frontend
npm install
npm run devAll endpoints for uploading, downloading, deleting, and listing files are documented in Postman.
Postman config can be found in Backend/Postman. Here's how to import it:
- Open Postman.
- Click "Import" (top left).
- Select the file
FileVault.postman_collection.jsonfrom theBackend/postmanfolder. - The collection will now appear in your Postman sidebar.
Example endpoints:
POST /uploadGET /download/{id}DELETE /delete/{id}GET /files
This project is licensed under the MIT License.
Christian Jones
GitHub