This project consists of a web application that indexes an email database and allows searching for information within it. It is divided into several parts, each with its specific objective.
The main goal of this application is to create an interface for searching information in email databases. The project is divided into the following parts:
In this stage, we download the Enron Corp email database and then create a program that indexes its contents using the ZincSearch tool.
We profile our indexer using the tools provided by Go. Then, we generate a chart to visualize the application's performance.
Create a simple interface that allows users to search and query the contents of the email database.
We use the information obtained from the profiling in Part 2 to optimize the code.
- Backend Language: Go
- Database/Search Engine: ZincSearch
- API Router: go-chi
- Interface: Vue 3
- CSS: Tailwind
Note: No other external libraries were used in the backend.
Below are instructions to execute each part of the application.
To index the Enron Corp email database, follow these steps:
-
Download the email database from http://www.cs.cmu.edu/~enron/enron_mail_20110402.tgz (423MB).
-
Run the following command:
$ ./indexer enron_mail_20110402
To profile the application, follow the instructions at https://go.dev/doc/diagnostics.
To run the search interface, use the following command:
$ ./mail-indexer -port your_port
The search application will be available at http://localhost:tu_puerto.
Use the profiling information obtained in Part 2 to optimize your code.
For any questions or comments, you can get in touch with me through my email.