Skip to content

nelidita/challenge-email

Repository files navigation

Email Search

Es una aplicación creada para la búsqueda por palabras de una gran catidad de correos electrónicos, en este caso de la corporacion ENRON.

La aplicación consiste en un monorepo, conformado por el backend creado con Go, usando Chi Router como enrutador, el frontend con VUE3, Tailwind y Typescript y finalmente se hace uso de ZincSearch como base de datos, gracias a este último podemos hacer búsquedas extremadamente rápidas, dentro de más de 517mil correos electrónicos.

En la interfaz gráfica, se puede buscar por conincidencia de palabras y ordenar por alguna propiedad elegida de forma ascendente o descendente, completamente responsiva.

Vista previa de la aplicación

Frontend vista de escritorio Vista de la aplicación en modo Desktop

Frontend vista mobile | Frontend vista mobile de los detalles del correo electrónicos

Vista de la aplicación en modo Mobile

Pasos para correr esta aplicación de forma local

  • Descargar la base de datos de correos de Enron Corp, en el siguiente enlace: http://www.cs.cmu.edu/~enron/enron_mail_20110402.tgz

  • Descomprimir el archivo descargado y agregarlo al directorio emails-indexer

  • Cambiar el nombre del directorio a data

  • Descargar zincSearch en el siguiente enlace: https://github.com/zincsearch/zincsearch/releases

  • Seguir las instrucciones de instalación en la documentación en el siguiente enlace: https://zincsearch-docs.zinc.dev/installation/

  • Al tener corriendo el zincSearch en el http://localhost:4080

  • Abrir otra terminal

  • cd emails-indexer

  • Crear un archivo .env y agregar las siguientes variables de entorno:

  • go run . (Con esto indexaremos la base de datos en la herramienta ZincSearch y estará disponible para ser usada en nuestro backend)

  • Abrir otra terminal

  • cd email-api

  • Crear un archivo .env y agregar las siguientes variables de entorno:

  • go run . (Con esto tendremos corriendo nuestro backend)

  • Abrir otra terminal

  • cd email-client

  • Crear un archivo .env y agregar la siguiente variable de entorno:

  • npm install

  • npm run dev

  • Abrir en el navegador http://localhost:5173

Profiling

Para ejecutar el profiling y ver graficamente el proceso de indexado de la data sigue los siguientes pasos:

  • Abre una terminal

  • cd emails-indexer

  • go tool pprof cpu.pprof // Para ver el uso de CPU

  • go tool pprof memory.pprof // Para el uso de la memoria

  • puedes verlo en svg o web o algun otra forma que prefieras.

About

Project in go and vue to search for enron emails

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors