Skip to content

Ticket/55 file management UI retry#117

Open
tobidontplay wants to merge 59 commits intojudge0:masterfrom
HSU-Senior-Project-2026:ticket/55-file-management-ui-retry
Open

Ticket/55 file management UI retry#117
tobidontplay wants to merge 59 commits intojudge0:masterfrom
HSU-Senior-Project-2026:ticket/55-file-management-ui-retry

Conversation

@tobidontplay
Copy link
Copy Markdown

Ticket #55 — File Explorer UI & Management (WIP)

This PR modernizes the IDE file explorer with a VS Code-inspired interface and adds core file management capabilities.

What's changed:

Multi-root workspace support —:users can now open and browse multiple folders simultaneously in the sidebar
Individual file tracking : files opened via "Open File" now appear in a dedicated "Opened Files" section in the explorer
Right-click context menu —:custom context menu for creating new files/folders and deleting entries within a workspace
Save to Local PC : added a direct download option to the File menu as a local backup fallback
Explorer UI :dark theme with hierarchy branching lines, language-aware file icons, hover states, and active file highlighting
Dependency cleanup : removed redundant js/package.json and js/node_modules that were conflicting with the SSH proxy
Still in progress:

Context menu styling (menu renders but needs CSS to be visible)
/judge0/languages 404 via proxy

todddole and others added 30 commits February 10, 2026 15:17
…angemenuitem

Tdole ticket576 changemenuitem
…clicked, whether code has changed, and whether the code is empty
…utton-fixes

Feature/compile button fixes
diDi78-9 and others added 29 commits March 7, 2026 10:18
…utton-fixes

Feature/compile button fixes
…le, cancel button type

- index.html: add missing </div> to close #judge0-csci-sign-in-modal before the site
  error modal; previously everything after the comment was nested inside the CSCI modal
- index.html: change cancel button from type="submit" to type="button" so it doesn't
  accidentally submit the login form to /login
- ide.js: fix showError() using undefined reportTitle; rename to FTitle which is the
  variable actually declared on the line above

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
…tion

- ide.js: update all four Judge0 API base URLs from localhost:2358 to
  35.153.133.130:2358 so compile/run requests reach the actual backend
- ide.js: fix DEFAULT_SOURCE missing closing braces for Java method and class;
  starter code was invalid and would fail to compile on first load
- ide.js: replace undefined getSourceCodeName() calls in saveAction() with
  currentFileName variable which already tracks the current file name

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
- Replace https.createServer with http.createServer so the browser can
  reach the frontend at http://localhost:3000 without cert warnings
- Move from port 2358 to 3000 to avoid conflict with Judge0 backend on 2358
- Remove unused fs and https imports since cert files are no longer needed

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
…ications

- index.html: change Email field to Username, switch input type from email
  to text, add autocomplete=off so browser does not suggest email addresses;
  rename id from modal_email to modal_username
- csci.js: update element reference to match new modal_username id
- csci.js: replace all alert() popups with a styled slide-in notification
  that appears in the top-right corner, shows green/red/yellow depending
  on outcome, and auto-dismisses after 3 seconds
- csci.js: success notification now shows the username that connected

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
- Remove method and action from the form so the browser does not try to
  navigate to /login on submit
- Change Sign In button from type=submit to type=button so only the
  JavaScript click handler fires, matching the fix already applied to Cancel

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
- Switch Judge0 backend URLs from 35.153.133.130 to 192.168.56.101
  (local VirtualBox VM) for local development and testing
- Previous public IP kept as a comment for reference
- NOTE: these URLs must be updated back to the production server IP
  before deploying to the live server

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
- Point all four API base URLs at http://35.153.133.130:2358
- This is the AWS server where Judge0 backend is running
- Update when domain name is confirmed pointing to this server

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
- Port 80 is the standard HTTP port, no port number needed in the URL
- Users can now access the IDE at http://35.153.133.130 directly

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
- Add http-proxy-middleware dependency to js/package.json
- ssh-bridge.js: add /judge0 proxy route that forwards to localhost:2358
  and injects X-Auth-Token header server-side (key no longer in browser code)
- ide.js: change all API URLs from http://35.153.133.130:2358 to /judge0
  (relative URL hits proxy on port 80 instead of Judge0 directly)
- ide.js: clear AUTH_HEADERS — authentication is now handled by proxy

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants