This project is an unofficial web-based refactor of the original OpenENF Command Line Tool. It provides a browser interface while utilizing the algorithms and lookup server developed by Chris Hodges. The refactoring from CLI tool to web-app was achieved using assistance from AI, since I'm not really familiar with C# or advanced Next.
- Node.js (v18 or higher)
- .NET SDK (v6.0 or higher, required to run the C# lookup server)
-
Clone the repository
-
Install dependencies: First, install the root dependencies (which uses
concurrentlyto manage both servers):npm install
Then, navigate to the web directory and install the Next.js dependencies:
cd web npm install cd ..
-
Start the application: Run the following command from the root directory. This will simultaneously start both the Next.js frontend and the C# lookup server:
npm run dev
-
Download the Databases (First Run Only): Navigate to http://localhost:3000 in your web browser. Upon your first visit, the app will notify you that the ENF databases are missing. Click Download Databases and wait for the progress bar to reach 100%.
-
Restart the Server: Once the download is complete, return to your terminal, stop the application (
Ctrl + C), and runnpm run devagain. The C# server will now load the newly downloaded data into memory, and you are ready to go!
-
Select electrical grids: Select
Europe (DE)for the Central European Grid which covers the majority of countries in Europe. SelectGreat Britain (GB)for the Great British grid (excluding Northern Ireland). Select both if unsure about the specific region. -
Select timeframe filter: The timeframe filter is optional, but speeds up analysis by a lot.
-
Select a media file: Select the audio or video file that you want to analyse (.wav, .mp3, .mp4 or .mov)
-
Start analysing
This project is licensed under the GNU General Public License v3.0 (GPL-3.0), in strict accordance with the original project. Open source must remain open source.
- Original Algorithm & CLI: All credit for the mathematical algorithms, the adaptive Goertzel implementation, the C# lookup server, and the original TypeScript logic goes to Chris Hodges.
- The original CLI repository can be found here: openenf/openenf.