# Revit Journal Assist

A Windows application providing a web-based user interface for viewing Autodesk Revit journal logs. This tool simplifies the process of locating, viewing, and downloading Revit journal logs across multiple user accounts and Revit versions on a Windows workstation.

## Application Description

Revit Journal Assist is designed to provide remote assistance for Revit journal log analysis. It runs as a background service with a system tray icon and offers a web-based interface accessible from any web browser, making it easy to browse and examine Revit journal logs from anywhere on the network.

## Functionality

### System Tray Icon

- Runs in the background and displays an icon in the Windows system tray
- The system tray icon provides a context menu with options to:
  - Open Web UI: Launches the web interface in your default browser
  - Enable/Disable Remote Access: Toggles firewall rules to allow or block remote access
  - Exit: Closes the application

### Web User Interface

- Accessible through a web browser via http://localhost:3000 or http://workstation-name:3000
- Displays a hierarchical file tree structure for navigating Revit journal logs:
  - Top level: User directories on the Windows system
  - Second level: Installed Revit versions (e.g., "2023", "2024")
  - Third level: Journal log files with information about each file
- When a journal log file is selected:
  - Displays the content of the log file in a scrollable text area
  - Provides a download button to save the log file locally

### Log File Access

- Automatically searches for Revit journal logs in the default locations within each user's profile directory:
  - `C:\Users\{username}\AppData\Local\Autodesk\Revit\Autodesk Revit {version}\Journals`
- Supports multiple Revit versions (2022, 2023, 2024)
- Indicates when no journal logs are found for a specific Revit version

### Remote Access

- By default, the application is only accessible locally on the workstation where it's running
- The "Enable Remote Access" option in the system tray menu adds a Windows Firewall rule to allow incoming connections on port 3000
- The "Disable Remote Access" option removes this rule when you no longer need remote access
- When enabled, the application can be accessed from other computers on the network using the workstation's hostname or IP address

### User Experience

- Provides loading indicators when retrieving log files
- Responsive design for easy use on various screen sizes
- Displays file metadata including size and modification date

## Usage Instructions

### Starting the Application

1. Navigate to the application directory
2. Run `npm start` to start the application
3. The application will:
   - Start a web server on port 3000
   - Create a system tray icon in the taskbar
   - Automatically open the web UI in your default browser

### Using the Web UI

1. In the file tree, click on a user directory to expand it
2. Click on a Revit version to see available journal log files
3. Click on a journal file to view its contents in the right panel
4. Use the "Download" button to save the currently displayed log file

### Accessing from Other Workstations

To access the web UI from another computer on the same network:

1. Ensure both computers are on the same network
2. Right-click the system tray icon and select "Enable Remote Access" to allow incoming connections
3. Find the hostname or IP address of the computer running Revit Journal Assist
4. Open a web browser and navigate to `http://{hostname-or-IP}:3000`
5. When remote access is no longer needed, select "Disable Remote Access" to restore security

## Build Instructions

### Prerequisites

- Windows 10 or newer
- PowerShell 5.1 or newer
- Node.js (v14 or newer) installed using Windows installer from nodejs.org
- Administrative privileges

### Building for Distribution

1. Open PowerShell as Administrator:
   - Press Win+X and select "Windows PowerShell (Admin)" or "Windows Terminal (Admin)"
   - Verify your execution policy allows running scripts:
     ```powershell
     Get-ExecutionPolicy
     ```
   - If needed, set it to RemoteSigned:
     ```powershell
     Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
     ```

2. Clone or download the repository:
   ```powershell
   git clone https://github.com/your-repo/RevitJournalAssist.git
   cd RevitJournalAssist
   ```

3. Install project dependencies:
   ```powershell
   npm install
   ```

4. Install the pkg tool globally:
   ```powershell
   npm install -g pkg
   ```

5. Create the Windows executable:
   ```powershell
   pkg --targets node16-win-x64 .
   ```

The build output will be a Windows executable (revit-journal-assist.exe) in the dist folder.

## Installation Instructions

### Prerequisites

- Windows operating system
- Node.js and npm installed (if running from source)
- Administrative privileges (required for accessing user directories and managing firewall rules)

### Installation Steps

#### Running from Source

1. Download or clone the repository to your local machine
2. Open a command prompt or PowerShell window in the project directory
3. Install the required dependencies:
   ```powershell
   npm install
   ```

4. Start the application:
   ```powershell
   npm start
   ```

#### Running as a Packaged Application

1. Download the packaged executable
2. Run the executable file (revit-journal-assist.exe)
   - The application will request administrative privileges
   - If denied, it will attempt to restart with elevation
3. The application will start and add itself to the system tray
4. A web browser will automatically open with the web UI

### Making the Application Start Automatically

To have Revit Journal Assist start automatically when Windows boots:

1. Create a shortcut to the executable or start script
2. Right-click on the shortcut and select "Properties"
3. In the "Shortcut" tab, click "Advanced" and check "Run as administrator"
4. Press Win+R and type `shell:startup`
5. Place the shortcut in the Startup folder that opens

## Troubleshooting

- If the web UI doesn't load, check if port 3000 is already in use by another application
- If journal files aren't appearing, verify that the paths to the Revit journal directories are correct
- Check the console output for any error messages if you're running from source
- If you see access denied errors, make sure the application is running with administrative privileges
- If elevation prompts repeatedly appear, ensure you're accepting the UAC prompt
- If remote access isn't working:
  - Verify that the "Enable Remote Access" option is selected in the system tray menu
  - Check that Windows Firewall is allowing connections on port 3000
  - Ensure both computers are on the same network
  - Try accessing the application using the IP address instead of the hostname

---

## License

MIT License

## Support

For issues or feature requests, please open an issue on the project repository.