Expedient and Document Manager

Closed Posted 4 months ago Paid on delivery
Closed Paid on delivery

File and Document Manager

Objectives

The student will develop a complete Web system that includes a client-side application and a server-side application using recent technologies and frameworks for development.

Problem Definition

A solution is needed for the problem of poor organization of Files and their documents in a company.

A File is known as a collection of documents that is about a specific topic and has a certain number/key to identify it, which can be alphanumeric.

A document can belong to several Files, therein lies the problem of disorganization, in addition to the administration of the file permissions to the interested users.

Functional Requirements

User Management

The system will only be for use by internal users of the company, so the functionalities of registering new users, as well as modifying user data and deleting or deregistering users are needed.

Another necessary feature is the ability to reset a user's password, in case the user has forgotten his password, resetting it to the default one.

The data that is needed to know about the user is the following:

Username: The username with which the user will log in to the system.

Password: Password with which the user will log in.

Name: The name or names of the user.

Last name (optional): The last name or surname of the user.

Gender (optional): M = Male, F = Female…

Date of birth (optional)

Email: User's email, this will be used to send him system notifications.

Type of user: there are only two types “administrator” and “normal user”

Department (catalog, optional): A value that indicates where the user is from; it is not mandatory because he may not yet have a defined department because he has not been given an official appointment.

Registration date-time: Date-time when the user was registered/registered in the system.

Last modification date: Date-time when the user's record was last modified. If the user's record has not been modified since it was created, this value will be null.

Deleted date-time: If this value is set, the user will be considered deleted (logical deletion).

File Management

For each File, the following data must be saved:

File Type: To indicate what type of File it is; this must be from a catalog.

File Number: This is an alphanumeric data, which helps the user to quickly identify a File; for example, it can be “PROY-2024-0001”, “EMPL-00404”, “ADMIN-2024-00002”... Note: this file number does not necessarily have to be unique, it can be repeated, but it will help in searches.

Tags: Labels that are a brief description of the File; and each file can have several tags; for example: “administration”, “budget”, “pending attention”, “staff”, “under review”...

Opening date: Date on which the File is registered in the system.

Last modification date: Indicates when any of the File's data was last modified; if the File has not been modified, this value must be equal to the opening date.

Completion date (optional): If a file has already been completed, this value must indicate when.

Deleted date and time (optional): Value that indicates when the File was deleted/erased (logical deletion), this means that if this value is set, the file has already been deleted.

Administrator users will be the ones who can create Files, in addition to assigning owners to them (a File can have several owner users).

Only the owners of the files can add documents to it, and an owner can be any type of user (admin or normal user). A user who owns a File can add other users as readers (which means they can only see the content of the File but cannot add new documents), but only administrator users who are owners of the File can add other users as owners.

If an owner user adds a user to the File that had already been previously added, the following scenarios may occur: If the user was previously an owner and the user is added as an owner, there is no problem, and if the user was already a reader and is added as a reader, nothing happens; but if the user is added with a different access than the one to which he was added, he must be informed that the user was previously registered with such permission and confirm that the type of access will be changed from owner to reader or from reader to owner.

Users can upload new documents to the File, but another way to do this is toand adding documents is that a document from another File can be added. Also, when uploading a new document, it must be verified that it has not been uploaded before (it does not matter if the name of the document is different, the system must be able to identify that the document to be uploaded is the same), this to avoid duplicate documents, in case a duplicate document is uploaded, the user must be informed that the document is already registered in addition to indicating which File or Files it is located in.

In the system (specifically in the front-end Web application), once the user is logged in, the Files of which he is the owner or reader must be listed, in addition to indicating the access he has (owner | reader). And only the Files that have not been completed or deleted must be shown. In addition, only owner users can complete a File and only Admin type users who are owners can delete the File. There should also be a section to be able to consult the Files that have already been completed (as long as the user still has access [owner or reader]).

It is worth mentioning that for each file, a history/log is needed to know what actions have been carried out on the file (modification of general data, uploaded document, deleted document...), as well as which user carried out the operation and when (date-time of the operation). This log can only be consulted by owner users who are admin users.

Document Management

As previously mentioned, if a user has owner access, they can upload documents to the File, either by uploading the document directly or searching for a document that has already been uploaded to another File to add it (emphasizing that the same document can belong to several Files).

The types of files allowed for documents that are uploaded to the system are: PDF, word processor files (such as Microsoft Word), spreadsheet files (such as Microsoft Excel), presentations (such as Microsoft Power Point), images (JPEG, PNG, TIFF, GIF).

Also as part of a File document, you may not upload a file, but rather you may save a URL/link where you can access the file.

The important data that you want to know about each document are:

Unique key: this must be a unique alphanumeric identifier that the system generates for the document. This can be a GUID/UUID, or a ULID or generate your own that is not repeated and is not easily predictable.

Document title: The name given to the document you want to save.

Document description (optional). This is a small text that describes what the document has.

Document date (optional). This is the date that the document has, for example, a letter that is written has a certain date, or an official document can have a date, but not all documents can have a date.

File type: This is to be able to identify if the document is a PDF, Word, Excel, etc. file. This value can be a literal of the file type or it can be cataloged.

Size (optional): The size of the file that corresponds to the document. Note that if the file is a URL and/or link, this information is not necessary.

Original file name (optional): The name of the file with which the file was uploaded.

URL or Link (optional): If it is not a file that is uploaded, but rather a reference to a file/document/page accessible via the Internet, the URL from where it can be accessed is saved.

SHA256 (optional): The SHA256 hash of the uploaded file that corresponds to the document.

Date time recorded: The date-time when the file was uploaded.

Date time deleted (optional): Date-time when the document is marked as deleted/erased (soft delete).

For the functionality of deleting/erasing a document, the following rules will apply: Only the users who own the file can delete a document. Also, if the document has already been referenced in another File, this document will not be deleted from the other File, but from the File from which it is being deleted. However, if the document is only in the File from which it is being deleted, then it will be deleted. Note: it is not deleted, only a soft delete is performed.

Non-Functional Requirements

Technologies to be Used on the Client Side

To develop the client-side application, it is required that the application be a React, Angular, Vue or any other framework for front-end development.

Technologies to be Used on the Server Side

On the server side, a Web API REST application must be developed, because later it is planned to develop desktop type applications for Windows and mobile applications on the client side. It is recommended to use frameworks such as Express (using Node JS), Laravel (with PHP), Flask, Fast API (in the case of Python).

For the database, use a relational database, which can be MySQL, PostgreSQL, MariaDB, SQL Server or the RDBMS of your choice.

Security

Authentication implementation to access the system.

Taking into account that in a REST API each request has to be authenticated, it is recommended to use a Token type authentication mechanism: JWT or custom token. “Basic” type authentication is not recommended.

In the database, the password must be stored encrypted, in addition to using a SALT parameter.

Node.js HTML CSS Express JS Laravel

Project ID: #38432334

About the project

35 proposals Remote project Active 3 mos ago

35 freelancers are bidding on average $150 for this job

NayaPakistan

Dear Elpiinchealex, This project seems a very fit work for me. I have done quite the same work some time ago. I would like to grab this opportunity and will work till you get 100% satisfied with my work. I have man More

$200 USD in 2 days
(223 Reviews)
7.1
MashoodurRehman1

I am a skilled Full Stack Developer with expertise in both front-end and back-end programming. I have strong proficiency in React and have experience developing secure web systems using recent technologies and framewor More

$250 USD in 2 days
(51 Reviews)
6.6
Rehmantech

Laravel Proposal Hello, I understand your requirements completely. Being a Full Stack Developer, I have rich experience 9 years and I am sure of my ability to complete your project according to your requirements, wi More

$136 USD in 4 days
(88 Reviews)
6.7
abhisaini0188

Hello, Greetings! I am interested in working with you on this project, as it aligns with my skill set. Please take a look at my profile for confirmation. After talking about it, we should go ahead and finalize the spe More

$250 USD in 7 days
(20 Reviews)
6.2
cebutango

As a seasoned Senior Laravel Developer with 8+ years of experience, I am confident that I have the skills and expertise to deliver your project for your business. My extensive knowledge includes HTML, CSS, PHP, MySQL, More

$200 USD in 7 days
(15 Reviews)
5.5
TechizeBuilder

Dear Sir, I'm Deepak, and with over 7 years of experience in website and mobile application development, I'm confident in my ability to deliver high-quality solutions tailored to your needs. My expertise spans front More

$200 USD in 10 days
(27 Reviews)
5.2
jumppace

Hello, Having read through the details and requirements of your project, I must say that I'm incredibly excited at the opportunity to facilitate a solution for your company's file and document organization chall More

$140 USD in 7 days
(1 Review)
4.7
FTCosta

HI. I have read your requirement and it is very interesting for me. As a senior full stack developer, I can help your project with high quality on time. SO I would like to disucss more via chatting box. Thank you.

$140 USD in 2 days
(2 Reviews)
4.0
darko53

Dear Elpiinchealex, I have thoroughly reviewed the project requirements for developing a comprehensive File and Document Manager system. I am confident in my ability to deliver this project with perfection. If you hav More

$150 USD in 5 days
(8 Reviews)
3.5
Shaiwan

Hello , I'm shaiwan, an experienced Node.js React and programmer with 8+ years of experience. I've worked on a lot of different projects, and I'm confident that I can help you reach your goals for your software. More

$100 USD in 20 days
(5 Reviews)
3.6
Edhemovic

Hello . I am a Full stack expert with rich experience and strong knowledge in Laravel, Node.js, Express JS, CSS and HTML. I have checked your project description carefully and I think that I can help you to complete t More

$30 USD in 6 days
(3 Reviews)
3.0
farhatwajahat96

Hi there, I am readily available to assist you with developing a complete Web system that includes client-side and server-side applications. I can assure you that you will receive a flawless product on time. As a pro More

$80 USD in 2 days
(13 Reviews)
3.9
skinginfotech

Hello, I have checked your requirements and really interested in this job. I am ready to start work immediately. I have 12+ years of experience in PHP, Laravel, Wordpress, Shopify, Magento and Opencart. I am to delive More

$140 USD in 7 days
(9 Reviews)
3.2
iffi37

Hello Muhammad Irfan is here " "Highly skilled computer expert with 4 years of experience in [specific areas of expertise, e.g., software development, data analysis, network administration]. Proficient in [relevant pro More

$140 USD in 7 days
(2 Reviews)
3.0
techaute1

Laravel Proposal Hello, I understand your requirements completely. Being a Full Stack Developer, I have rich experience 9 years and I am sure of my ability to complete your project according to your requirements, wi More

$125 USD in 4 days
(5 Reviews)
2.9
brayanstiven5

Hi . No problem this for me. I am very excited with your project because I have completed similar project recently. The skills required for your project ---Expedient and Document Manager--- are my main specialty. I c More

$150 USD in 3 days
(1 Review)
2.4
gregory930

Hello. As a Senior Full Stack Developer, I am interested in this project. I am a highly skilled Senior Full Stack Developer with extensive experience in building robust and scalable web applications. I have a strong b More

$140 USD in 7 days
(2 Reviews)
2.1
charlottes4

⭐️⭐️⭐️⭐️⭐️ The best service for your project ⭐️⭐️⭐️⭐️⭐️ I am familiar with Express JS, Laravel, CSS, Node.js and HTML. ✓ Completed over 50 web & mobile projects ✓ Among top 2% freelancers pool ✓ Punctual with deadlin More

$150 USD in 2 days
(0 Reviews)
0.0
ericeca

As a senior software engineer, I have the perfect proficiency and experience to tackle your problem of file organization and management. I am an expert in Java+Spring backend, just the skillset you need to develop your More

$140 USD in 7 days
(0 Reviews)
0.0
noemy0

Hello, Greetings , Good evening! I’ve carefully checked your requirements and really interested in this job. I’m full stack node.js developer working at large-scale apps as a lead developer with U.S. and European team More

$30 USD in 6 days
(0 Reviews)
0.0