Introduction :
Almost all the Business houses have a demand of managing their documents online. There are many platforms that offer this service as SaaS ( software as a service). Some popular service providers are Google Drive, Microsoft OneDrive and DropBox.
Ideally users store different documents like Agreement , invoice, soft copy of Challans , Receipt ets issued by Govt. bodies, Deeds , Drawings, Photos etc.
Problem Statement :
All the features are not available in these storage systems, so the need for a custom Cloud Repository / storage system came in place.
Required Features:
Following are the required features in a Document Management System.
- The goal of this system is to organise a large number of documents ( ideally should be any file type) digitally.
- Create folders and subfolders.
- Delete Folder/s and Sub folder/s
- Download Folders in zip or Rar file
- Navigate to different folders from the directory tree. ( Not available with available SaaS products)
- Upload and share Files
- User wise access to the files and folders
- User management.
- Folder management.
- Upload Documents.
- Download Documents.
- Share Documents with url.
- Both a Web and a Mobile App is Preferred.
Diagram 1 :
How it should look like.
Diagram 2 :
The HL Architecture
Load Balance and Message Queue is required only when the Files are heavy ( Video Files) and Large Number Of Concurrent Users are present.
Preferred Technical Stack
Web:
Language : PHP / React JS
DB : MongoDB
Storage: AWS S3 / Google storage
MQ : Kafka
Mobile : Flutter / React Native