Videobox is a web application designed to share class recordings securely and efficiently, providing educators and students with expirable link-based access without the need for downloads. This project aims to overcome the limitations of mainstream cloud services, which can be costly and may require users to fetch entire video content before playing.
The inception of Videobox arose from the need for a simple, efficient way to share educational content that doesn't compromise on security and accessibility. Unlike services like Google Drive or Dropbox, Videobox allows instant streaming without full download and without requiring a specific email service account (Unlile Google Drive), making it ideal for educational environments.
- Actix/Rust: Robust framework for building efficient and reliable api services.
- React: A JavaScript library for building user interfaces, ensuring a responsive and dynamic frontend.
- Diesel: ORM used for database operations, primarily with PostgreSQL to manage user information securely and efficiently.
- AWS S3: Utilized for secure and scalable storage of video files through multipart uploads.
- EvaporateJS: (Considering) A JavaScript library for directly uploading files from a browser to AWS S3, enhancing the upload process with resilience to network failures.
This project was bootstrapped with Create Rust App.
- Stable Rust
- Diesel CLI
- For PostgreSQL:
cargo install diesel_cli --no-default-features --features postgres
- For SQLite:
cargo install diesel_cli --no-default-features --features sqlite-bundled
- For PostgreSQL:
cargo-watch
: To recompile on change, runcargo install cargo-watch
- Mold: Ensure Mold is installed to take advantage of faster compile times. Installation instructions can be found here.
First, ensure that the .env
file is properly configured according to the .env.example
provided. This will configure your local environment variables necessary for development and production.
- Run in Development Mode:
cargo fullstack