This is a project that implements a bulk file upload service to Amazon S3, accompanied by a user interface for visualizing and managing the uploaded files.
- Seamless AWS S3 integration for file uploads.
- Real-time WebSocket notifications for upload progress.
- Modern and responsive user interface.
-
Backend:
- Go (Golang)
- Fiber (Web Framework)
- AWS SDK for Go (S3 Integration)
- Fiber WebSocket (WebSocket Communication)
-
Frontend:
- React
- Vite.js (Build Tool)
- Axios (HTTP Requests)
- WebSocket API
- Go (v1.16 or higher)
- AWS CLI (to configure Amazon S3 credentials)
- Project dependencies (can be installed by running
go get ./...
in the project directory)
-
Configure AWS credentials by running
aws configure
. -
Copy the
.env.example
file to.env.local
and fill in the required environment variables.
To start the backend, run the following command:
go run main.go local (or go run main.go prod)
or
air local (or air prod)
The server will be available at http://localhost:33003 by default.
- Node.js (v14 or higher)
- npm (installed with Node.js)
- Vite.js (installed globally using
npm install -g create-vite
)
- Navigate to the frontend directory (
/frontend
) from the project root. - Copy the
.env.example
file to.env
and fill in the required environment variables.
Run the following commands to install dependencies and start the application:
npm install
npm run dev
The application will be available at http://localhost:5173/ by default.
-
Backend Setup:
-
Ensure you have Go installed (version 1.17 or higher).
-
Navigate to the backend directory (
/backend
) from the project root. -
Copy the
.env.example
file to.env
and fill in the required environment variables. -
Run the following commands to install dependencies and start the backend server:
go mod tidy go run main.go
-
The backend will be available at
http://localhost:33003
by default.
-
-
Frontend Setup:
-
Navigate to the frontend directory (
/frontend
) from the project root. -
Copy the
.env.example
file to.env
and fill in the required environment variables. -
Run the following commands to install dependencies and start the frontend application:
npm install npm run dev
-
The frontend will be available at
http://localhost:5173
by default.
-
-
Application Workflow:
- Access the frontend via a web browser.
- Upload files using the user interface.
- View the list of uploaded files and perform actions such as downloading or viewing their file content.
-
Contributing:
- Feel free to contribute to the project by opening issues or submitting pull requests. All help is welcome!
-
License:
- This project is licensed under the MIT License.