EAM is a project with the following components:
-
Tauri Backend (Rust):
Located in src-tauri/src/main.rs. This is the main backend of the application. -
React Frontend (Vite + JS):
See the source in src/. The frontend is built with Vite and React. -
C# Sub-Project (.NET Framework 4.8) EAM_Task_Installer:
This tool is in the C# project at t-src-modules/EAM_Task_Installer/EAM_Task_Installer/Program.cs. -
C# Sub-Project (.Net Framework 4.8) EAM_Save_File_Converter:
This tool is currently closed source. -
Rust EAM_Plus_Lib:
This is closed-source.
To still be able to compile, there is a mock-lib available at t-src-modules/eam_plus_lib_mock, just use it in the dependencies here t-src-modules/eam_background_sync/Cargo.toml
- Rust: Install the Rust toolchain and Cargo.
- Node.js: Install Node.js for the React frontend.
- Bun: Bun is used as our runtime.
- .NET Framework 4.8: Required for the C# sub-project. (Comes with windows)
- Tauri CLI: Install globally with
cargo install tauri-cli.
-
Install JavaScript Dependencies:
- Run either
npm iorbun iin the project root. - Run either
npm iorbun iin t-src-modules/eam-commons-js
- Run either
-
Link the eam-commons-js lib:
- Build the lib using
npm run buildin [t-src-modules/eam-commons-js] - Run either
npm linkorbun linkin t-src-modules/eam-commons-js - Run either
npm link eam-commons-jsorbun link eam-commons-jsin the project root
- Build the lib using
-
Build the included binaries (Windows only):
- Create a new folder called
IncludedBinariesatsrc-tauriresulting in a path like: src-tauri/IncludedBinaries - Copy the
EAM_Save_File_Converter.exefrom your known source into src-tauri/IncludedBinaries - Build the EAM_Task_Installer in
Releasemode.
If you have trouble building the
EAM_Task_Installeryou can just copy the current existing versions from yourC:\Users\%username%\AppData\Local\ExaltAccountManager\v4 into the specified destinations. (Requires an installed EAM version) - Create a new folder called
-
Run EAM in developer mode: Run
bun run tauri devin the root of the project.This will take quite a while for the first time but eventually you should see a transparent Window pop up. This windows will after a short time display EAM.
Enjoy coding 🥳
- We use GitMojis for commit messages, if you don't wish to do so, that's fine but expect your commits to be squashed upon merge.
- If possible use a GPG-Key to sign your commits.
- Opening the developer tools
- Windows: Press F12 when EAM is focused to open the Developer console.
- macOS: Right-Click -> Inspect or press CMD + Shift + J
- Reload the page
- Windows: Press F5 or Ctrl + R to reload the window.
- macOS: Right-Click -> Reload or open the developer tools and press CMD + R
- The LocalStorage and SessionStorage contain data.
At the moment building for production is not done via GitHub actions since we use a Code Signing Certificate that is stored on a local SmartCard. If you wish to build your own version please do so by modifying the src-tauri\tauri.conf.json file.
Remove the following properties in order to be able to build:
bundle.windows.certificateThumbprintThis is the code signing certificates thumbprintbundle.windows.digestAlgorithmThis is the digest Algorithem for code signingbundle.windows.timestampUrlThis is the timestamp server used for code signingbundle.plugins.updater.endpointsThis are the endpoints for EAM-Updates. If you build your own version you need to either host your own or remove all update servers.bundle.plugins.updater.pubkeyThis is the public key of the updates, since your build requires it's own private key you need to either remove this property or have your own key-pair.
More informations can be found at the Tauri documentation https://tauri.app/reference/config/
When ready, use npm run tauri build in the root of the project.