Junior project: Simpicdoc "Simplified picture and document management with OCR and mobile upload"(PART 1)(PLANNING)
Tags: beginners, javascript, csharp, development
Published: 2023-07-06 17:32:14

Hello my name is Andres!,
I'm a Junior Developer from Nicaragua!.

After being in tutorial hell for 2 years and half and not showing any progress from tutorials, I decided to create a good personal project to show recruiters.

This is my first project trying to do this,

I'll try to show my progress and investigation to get to my goal above. I'll be updating my progress through this post.

Hopefully, I'll be able to finish it.

**7/6/2023**
Ok, first ill start with a basic design of the project. Let me investigate the necessary steps. First of all I need to follow  [SDLC ](https://dev.to/whotarusharora/software-development-models-sdlc-explained-by-expert-3p50). 

Using this [guide](https://dev.to/rishabhraghwendra/software-development-life-cycle-beginners-guide-k8p), let's begin with the project.

## _**Planning**_

After looking for a questions on the planning stage this are the questions I found that need to be answered.

(I did not find a proper questionnaire)[Link where I found the questions](https://rikkeisoft.com/blog/software-development-plan/)

**1. Who will be involved in the project?**
[Me, myself and I](https://www.youtube.com/watch?v=zR9AlcgL6_0&t=31s&ab_channel=DeLaSoulVEVO)
(ChatGpt for proof readiness)

**2. Why is the project worked on?**

- This project aims to provide businesses with a quick and efficient method of storing and analyzing their files, receipts, and documents on a server. It utilizes OCR technology to extract data from photos taken via cellphones or web browsers, and seamlessly integrates the extracted information into Google Sheets, Excel, or Word for further analysis.

- Enable users to save documents to the appropriate section, URL, or location on the document/file management server.

- This application will be particularly beneficial for Small and Medium Businesses (SMBs), catering to their specific needs and requirements. 

**3. What are the goals of the software?**

1. Efficient File Management: The software aims to provide businesses with a method for storing and managing their files, receipts, and documents. It enables users to upload and organize files in a organized manner, ensuring easy retrieval and accessibility.

2. Automated Data Extraction: By leveraging Optical Character Recognition (OCR) technology, the software automates the extraction of text and data from uploaded photos. 

3. Seamless Integration with Office Software: The software strives to seamlessly integrate with popular office software, including Google Sheets, Excel, or Word. It enables users to import the extracted data into these applications, allowing for further analysis, reporting, and processing.

**4. When is the expected delivery date?**

Hopefully for by the end of December so I can apply for Junior Programming roles by next year. (Started on 07/06/2023)

**5. How will the project be delivered?**
Will be uploaded to Github for updates.

**6. How much can the project cost?**
Hopefully not much, see as we go.

## _**Defining**_

The requirements phase outlines the creation of SRS document 
software requirements specification (SRS) is a document that describes what the software will do and how it will be expected to perform.

**Software Requirements Specification (SRS)**

> **1. Introduction**

> The Software Requirements Specification (SRS) document outlines the requirements and specifications for the development of a file management and analysis system for businesses. The system will enable users to quickly store, retrieve, and analyze their files, receipts, and documents using Optical Character Recognition (OCR) technology.

> **2. System Overview**

> The system aims to provide businesses with an efficient way to store and analyze their files using OCR. Users will be able to capture photos of their documents via cellphones or web browsers, and the system will extract the relevant information using OCR. The extracted data will be seamlessly integrated into popular office software such as Google Sheets, Excel, or Word, enabling users to perform further analysis and processing.

> 2.1[How to do the drawings](lucid.app)
> ![Use case Diagram 1](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u0sd5rd24z25ge2u485f.png)
> ![Use case Diagram 2](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qvmfcxz1cyb870k7r3hm.png)
> **3. Functional Requirements**
> - File Management 

> Users can upload photos of files, receipts, and documents from cellphones or web browsers. The system securely stores and organizes the uploaded files on a server. Uploaded files should be accessible for retrieval and analysis.

> - Optical Character Recognition (OCR) 

> The system employs OCR technology to extract text and data from the uploaded photos. OCR should accurately extract information from various types of documents.
> - Integration with Office Software 
> The system integrates with popular office software, including Google Sheets, Excel, or Word. Extracted data should be seamlessly integrated into the chosen office software. Users should be able to export the analyzed data for further processing and reporting.

> - Security and Data Protection

> The software prioritizes the security and protection of user data. It implements robust security measures to safeguard uploaded files, extracted data, and user information. User authentication, access controls, and secure storage mechanisms are key considerations to ensure data privacy and prevent unauthorized access.

> **4. Non-Functional Requirements**

> - Usability 

> The system should have an intuitive and user-friendly interface. The uploading process should be straightforward, requiring minimal user effort. Error messages and notifications should be clear and helpful.

> - Performance 

> The OCR process should be efficient and provide quick results.The system should handle a large volume of uploaded files and maintain responsive performance. Response times for uploading, extraction, and integration should be optimized.
> - Security

> The system should implement robust security measures to protect user data and files.User authentication and access control mechanisms should be in place.Uploaded files and extracted data should be stored securely on the server.

> **5. Constraints**

> The system should be compatible with different web browsers and cellphone platforms.

> Integration with specific office software APIs should be considered.

> **6. Glossary**

> OCR: Optical Character Recognition

> API: Application Programming Interface


**7/11/2023**

## _**Designing**_

The designing phase outlines the creation of Design Document Specification (DDS) is a detailed document providing information about the characteristics of a project to set criteria the developers will need to meet.

 **Design Document Specification (DDS)**

> **1. Introduction**

> The Design Document Specification (DDS) provides an overview of the design considerations and architectural decisions for the development of the file management and analysis system outlined in the Software Requirements Specification (SRS).

> **2. System Architecture**

> The system follows a client-server architecture, where the client component comprises the web browser or mobile application used for uploading documents, while the server component handles document storage, OCR processing, and integration with office software. The system leverages microservices architecture for scalability and modularity.

> **3. System Components**

> -  3.1 User Interface (UI)

> The UI component provides an intuitive and user-friendly interface for users to interact with the system. It includes screens for uploading documents, viewing document details, and accessing integrated office software.

> - 3.2 Server Infrastructure

> The server infrastructure component consists of the server-side modules responsible for receiving and processing document uploads, managing storage, and performing OCR operations.

> - 3.3 OCR Processing

> The OCR processing component utilizes OCR algorithms and libraries to extract text and data from uploaded photos. 

> - 3.4 Document Storage

> The document storage component handles the secure storage and organization of uploaded files. 

> - 3.5 Office Software Integration

> The integration component enables seamless integration with popular office software such as Google Sheets, Excel, or Word. It facilitates the transfer of extracted data to these applications for further analysis and processing.

> **4. System Design Considerations**

> - 4.1 Security

> Access control mechanisms and user authentication are employed to ensure authorized access.

> - 4.2 Performance Optimization

> The system optimizes performance by employing efficient algorithms for OCR processing, implementing caching mechanisms for frequently accessed data, and utilizing indexing techniques for fast document retrieval.

> **5. Integration with Third-Party Services**

> - 5.1 OCR Libraries

> The system integrates with OCR libraries or APIs to leverage advanced OCR capabilities for accurate data extraction.

> - 5.2 Office Software APIs

>Integration with specific office software APIs enables seamless data transfer and integration with Google Sheets, Excel, or Word.

> **6. Development Tools and Technologies**

> - The system will be developed using appropriate programming languages, frameworks, and libraries for frontend and backend development. Development tools such as integrated development environments (IDEs), version control systems, and project management tools will be utilized to facilitate efficient development and collaboration.