Data Drive is a flexible platform for managing data that works well with MinIO. On top of MinIO, it provides an abstraction layer that add to it the new functionalities and a user-friendly interface. We are able to effectively manage, access, and work.
- Backend: Backend is built using Flask, a python based framework.
- Frontend: Frontend is built using ReactJS, a javascript based framework. We use the chonky file browser package for the frontend.
- DataBases: For Database we use two databases, one is SQL which is used for storing the metadata of the files, permissions, users, etc. The other is MinIO which is used for storing the actual files.
- Authentication: Authentication is done using JWT tokens
The Database Diagram is as follows:
The Class Diagram is as follows:
- The application supports, registering of new users, logging in and out, of the application. We have added authentications using JWT tokens.
- As a user is registered, we assign user a pre-defined storage space that is pre-defined by the admin and could be configured by the admin later.
- The user can see their assigned quota and the storage space used.
The program allows you to log in and out, as well as create administrators. The administrator may modify storage capacity, grant people access, and more.
- Upload - The user has the ability to upload files to their assigned storage space if they have the permission. This is done using MinIO and SQL.
- Download - Users can download files, this is done using MinIO and SQL.
- File System manipulation - Users can create and manage folders.
- File Sharing - The user has the ability to share files with other users. The user can also set permissions for the shared file.
- Copying/ Moving files - The user has the ability to copy or move files from one folder to another.
Selected data formats can be seen within the program itself. Markdown, images, video, pdf and more formats are among those that are supported.
- Read the README.md file in the backend folder.
- Follow the instructions in the README.md file.
- Read the README.md file in the chonky-frontend folder.
- Follow the instructions in the README.md file.
- Run the following command in the root directory of the project:
docker-compose up
- The frontend will be available at
http://localhost:3000
- The backend will be available at
http://localhost:8000
- Run the minio and mysql server as mentioned in the backend README.md file.
4.1. The minio server will be available at
http://localhost:9000
4.2. The mysql server will be available athttp://localhost:3306
- To make the backend server inside docker container to connect to the minio and mysql server follow the instructions in the link below: https://stackoverflow.com/questions/31324981/how-to-access-host-port-from-docker-container