/DocsHub

Repositório contendo o código do Projeto de C214 - Lab

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

DocHub

DocHub is a solution to save you time and headaches. Remember when you had to access a website and you had to provide it with lots of documents? Or worse: you didn't even have those documents at hand and had to rush to search for them?

Considering all this, DocHub is a Hub of Documents. it stores all documents you want and you can use them anytime! Stop losing huge amounts of time searching for those documents and filling out forms! Make your life easier with DocHub!

Authors ✏️

Maycol Teles Costa Dionisio Pereira

Raphael Rangel Freitas


Summary 📋


Requirements 📝


Setup and Installation ✅

Cloning the repo 📁

First off, in order to get a copy of the project to run/test it, clone the repository into a folder on your machine:

git clone git@github.com:MaycolTeles/projeto_c214.git

TODO: ADD SECTION TO SET UP USING start_project.sh SCRIPT

TODO: ADD SECTION TO RUN USING DOCKER


How To Use 👨‍💻

Executing the Project ▶️

To run the application, you can use the Makefile to run it by running:

make run

or you can use the Python interpreter directly by running:

python app/run.py

Changing the UI/Database

To change the application's UI or Database, you need to open the dependencies.py module located inside dependencies package. When you open it, you must change the variables USER_INTERFACE_INJECTION and REPOSITORY_INJECTION to the ones you want. For example, in case you want to use Flask and MySQL, you must have something like so:

USER_INTERFACE_INJECTION = FlaskUserInterface()
REPOSITORY_INJECTION = MySQLRepository()

But if you want to use a Desktop UI (using Tkinter) and a repository in memo, you must do like so:

USER_INTERFACE_INJECTION = TkinterUserInterface()
REPOSITORY_INJECTION = InMemoRepository()

and so on.


Technical Information 📝

Concepts

The application is written in Python, using concepts of:

  • Clean Architecture
  • Clean Code
  • SOLID
  • TDD

Technologies

Some of the technologies are listed below:

UI

  • Django
  • Flask
  • Tkinter

Repository

  • In Memory
  • MongoDB
  • MySQL
  • SQLite

To check the technical information in detail you can check this docs.


Final Considerations 📌

TODO: May be add a EntityDTO to send the DTO directly to database?