This project is a web application created using Vue.js, Vuex, Golang, ZincSearch, and Chi router for Golang as backend, which performs indexing and search of emails from the Enron corpus. The Enron email corpus is a collection of over 500,000 emails that were sent and received by Enron Corporation.
- Golang
- Vue.js
- Vuex
- ZincSearch (similar to Elasticsearch)
- Chi router for Golang
- Clone this repository to your local machine.
- Install Golang if not already installed.
- Install ZincSearch by going to the ZincSearch repository and following the installation instructions.
- Install Vue.js and Vuex if not installed by running
npm install vue
andnpm install vuex
respectively. - Install Chi router for Golang by running
go get -u github.com/go-chi/chi/v5
. - Run
go mod download
to download Go module dependencies.
- To start the application, go to the run directory of the project using
cd run
in your terminal and then run./mamuro -p <PORT> -d <PATH> (OPTIONAL)
to start the server. (<PORT>
is the desired port to run the server and<PATH>
is for the path for the web environment, by default is "../mamuro-email/dist"). You should be able to see the application running by accessinglocalhost:<PORT>
in your browser,. - To index the Enron email corpus, run first
cd indexer
and then./indexer <PATH>
where<PATH>
is the path to the directory containing the Enron email corpus. - You can now start searching for emails using the search bar at the top of the application. You can search for emails by keyword or phrase, sender or recipient, and date range.
- The results of your search will be displayed on the page with email metadata, including sender, recipient and subject. You can read the content of each email by clicking on it.
Pull requests and contributions are always welcome. If you want to contribute to this project, please follow these steps:
- Fork this repository.
- Create your feature branch (
git checkout -b feature/your-feature
). - Make necessary changes and improvements.
- Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature/your-feature
). - Create a new Pull Request.
This project is licensed under the MIT License. See the LICENSE file for more information.