Commit Graph
324 Commits
Author SHA1 Message Date
Selly SupriyatinandGitHub 07cda1f813 Merge pull request #33 from ATLAS-PJK-GM007/selly/frontend
Selly/frontend
2026-06-14 20:41:40 +07:00
seriouselly 63ccc1255a fix(scan): resolve double scrollbar and modal size type errors
- Remove nested overflow and fixed height classes (`max-h-[75vh]`, `overflow-y-auto`) from the inner modal container to fix the double scrollbar UI glitch.
- Adjust the Modal `size` property to a supported type to resolve TypeScript compilation errors.
- Ensure a cleaner, more seamless scrolling experience for the diagnosis result pop-up.
2026-06-14 20:40:43 +07:00
seriouselly 2733a36ea8 feat(catalog): make entire disease card clickable to toggle accordion
- Move the `onClick` event handler from the accordion header to the outermost card container in `catalog-page.tsx`.
- Allow users to click anywhere on the expanded card (including the description and treatment sections) to collapse it.
- Improve overall user experience by providing a significantly larger tap target, especially beneficial for mobile or touch-screen users.
2026-06-14 19:46:38 +07:00
seriouselly 37ac82b2d2 Merge branch 'main' of https://github.com/ATLAS-PJK-GM007/ZeaVis-Edu into selly/frontend 2026-06-14 19:29:52 +07:00
seriouselly 8d342e1269 fix(catalog): add fallback to local seed data for images and medicines
- Import `diseaseCatalogSeed` to use as a fallback data source in `catalog-page.tsx`.
- Implement logic to merge backend API responses with local seed data, ensuring `imageUrl` and `medicineRecommendations` are populated.
- Fix an issue where disease images and specific treatments were not rendering due to missing fields in the database payload.
- Enhance UI resilience by displaying accurate visual and medical data without requiring immediate backend updates.
- Convert static PNG image assets to WebP format and remove old PNG files to significantly reduce image payload size and improve page load performance.
- Enhance overall UI resilience and frontend speed.
2026-06-14 19:28:19 +07:00
Asep Haryana SaputraandGitHub dbf2bcfc4a Merge pull request #32 from MythEclipse/main
fix
2026-06-13 00:36:47 +07:00
MythEclipseandClaude c116a2c4a5 fix(ml-service): test logic + prediction_response status forward
- calibrate_probs_selects_top_label: use logits that produce confidence >= 0.70
- prediction_response: forward status from Prediction struct instead of hardcode

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 17:08:27 +00:00
MythEclipseandClaude 9ab472ce1b fix(ml-service): add missing status field in PredictionResponse + fix unused variable
- PredictionResponse::status was missing in prediction_response()
- Prefix preprocess_start with underscore for unused variable warning

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 16:43:53 +00:00
Asep Haryana SaputraandGitHub 65adcd9d24 Merge pull request #31 from MythEclipse/main
fix(ci): download model files from HF root path to correct subdirs
2026-06-12 23:29:18 +07:00
MythEclipseandClaude 1aa8f9cd5f fix(ci): download model files from HF root path to correct subdirs
Files on HF hub sit at repo root (model.onnx, etc.),
not in model/ subfolder. Fix download script to copy
each file to the correct subdirectory expected by Docker.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 16:15:06 +00:00
Asep Haryana SaputraandGitHub 0aefa7f5ff Merge pull request #30 from MythEclipse/main
fix(ml): fix cbam_block, cardinality, Lambda serialization + update C…
2026-06-12 23:02:02 +07:00
MythEclipseandClaude 58d3feb8a0 fix(ml): fix cbam_block, cardinality, Lambda serialization + update CI download to include best_model.keras
- save_model.py: fix cbam_block channels dtype (x.shape[-1] not tf.shape)
- save_model.py: match notebook architecture (Resizing + GaussianNoise)
- save_model.py: load weights H5 instead of .keras (Lambda serialization safe)
- notebook: add output_shape to Lambda layers for Keras 3 compatibility
- notebook: fix n_bins NameError in temperature scaling plot
- notebook: fix cardinality fallback (or 100 → if card > 0 else 100)
- deploy.yml: download best_model.keras + calibration.json from HF
- HF repo: MythEclipse2737/zeavis-edu-corn-leaf-classifier

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 15:59:50 +00:00
Asep Haryana SaputraandGitHub af1565d704 Merge pull request #29 from MythEclipse/main
feat: update model
2026-06-12 22:56:44 +07:00
MythEclipse aa58a0301a a 2026-06-12 15:24:49 +00:00
MythEclipse 2e925a4188 a 2026-06-12 15:24:49 +00:00
MythEclipse 731b5728f7 a 2026-06-12 15:24:49 +00:00
MythEclipse 1cf73aff6d b 2026-06-12 15:24:49 +00:00
MythEclipse 857a008087 a 2026-06-12 15:24:49 +00:00
MythEclipse f9bd991bdf feat(ml): implement v3.0 architecture with CBAM and calibrated inference
- Integrate Convolutional Block Attention Module (CBAM) for improved feature focus
- Implement temperature scaling and confidence-based status reporting
- Automate dataset acquisition using kagglehub
- Update ONNX opset to 18 and refine preprocessing validation
2026-06-12 15:24:49 +00:00
Selly SupriyatinandGitHub 43307a15a5 Merge pull request #28 from ATLAS-PJK-GM007/selly/frontend
feat(layout): auto-collapse sidebar when clicking main content area
2026-06-12 12:59:29 +07:00
seriouselly bc58b16ddd feat(layout): auto-collapse sidebar when clicking main content area
- Import `useUiStore` into `main-layout.tsx` to access the global sidebar state.
- Add an `onClick` event listener to the main content wrapper.
- Automatically close the sidebar if it is expanded and the user clicks outside of it.
- Enhance overall UX by providing a more intuitive, frictionless way to dismiss the navigation menu.
2026-06-12 12:57:30 +07:00
Selly SupriyatinandGitHub 1f0f398128 Merge pull request #27 from ATLAS-PJK-GM007/selly/frontend
Selly/frontend
2026-06-12 12:38:31 +07:00
seriouselly 3b8cb49f2a fix(sidebar): toggle sidebar state when clicking navigation links
- Update the `onClick` handler for navigation links in `sidebar.tsx` to use `!isSidebarOpen` instead of a hardcoded boolean.
- Enable navigation items to act as smart toggles: expanding the sidebar when clicked in collapsed mode, and collapsing it when clicked in expanded mode.
- Improve overall user experience by reducing the need to manually click the main toggle button.
2026-06-12 12:35:46 +07:00
seriouselly a77a6c84ff fix(sidebar): persist sidebar state across page navigation
- Move `isSidebarOpen` state from local component (`useState`) to global Zustand store (`ui-store.ts`).
- Fix an issue where the sidebar would incorrectly reset to its default closed state when navigating between routes (e.g., to the Telemetry page) due to component remounting.
- Ensure consistent sidebar toggle behavior across the entire dashboard application.
2026-06-12 12:26:11 +07:00
seriouselly d5ff1a5cc0 Merge branch 'main' of https://github.com/ATLAS-PJK-GM007/ZeaVis-Edu into selly/frontend 2026-06-12 11:29:45 +07:00
seriouselly 8ede458a71 refactor(sidebar): set initial state to collapsed by default
- Update `isSidebarOpen` initial state from true to false in `sidebar.tsx`.
- Ensure the sidebar starts in a mini/collapsed mode when the dashboard is first loaded to provide more space for the main content.
2026-06-12 11:27:23 +07:00
MythEclipseandClaude df09bbca89 fix(ci): download ONNX directly from HF Hub instead of full export pipeline
- No need to install TensorFlow (3GB) — just pip install huggingface_hub
- Download pre-built model.onnx directly (saved from notebook export)
- Cuts CI time from ~10 min to ~30 seconds

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-11 20:23:39 +00:00
MythEclipseandClaude 04d2bebdfe fix(ci): add HF_TOKEN diagnostic and grouped logging for ml build
- Verify HF_TOKEN exists before attempting download
- Group CI log output for readability
- Use os.environ['HF_TOKEN'] instead of .get() to fail fast

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-11 20:12:55 +00:00
MythEclipseandClaude 7f17c19dc8 fix(ci): download model from Hugging Face instead of storing in repo
- Remove binary model artifacts tracked in repo (.tflite, saved_model, tfjs model.json)
- CI now downloads best_model.keras from Hugging Face Hub (MythEclipse2737/corn-leaf-disease-classifier)
- Add save_model.py step before convert_onnx.py in CI pipeline
- Remove LFS patterns from .gitattributes (no longer needed)
- Remove lfs:true from checkout action

The model is fetched at CI time using HF_TOKEN secret — no large
binary files stored in git.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-11 20:05:55 +00:00
MythEclipse 8137057186 a 2026-06-11 19:42:02 +00:00
MythEclipse 4377be14cd chore(Machine_Learning): update notebook execution count and outputs 2026-06-11 16:49:37 +00:00
MythEclipse c733f3bfe1 a 2026-06-11 16:39:04 +00:00
MythEclipse 8c65e33a74 chore(Machine_Learning): clear notebook outputs and add .gitignore 2026-06-11 16:31:38 +00:00
MythEclipseandClaude 7a7e5b5955 fix: update Google Drive file ID to correct dataset link
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-11 15:19:38 +00:00
MythEclipseandClaude b83b2e132f feat: download dataset from Google Drive when running locally
- Add  dep to requirements.txt
- Non-Colab path: download dataset_jagung.zip from Drive using file ID
  if not present locally, then extract as usual
- Keeps Colab path unchanged (drive.mount)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-11 15:18:25 +00:00
MythEclipseandClaude ddced09bbc feat: make notebook dual-compatible (Colab + local)
- Add IS_COLAB auto-detection (try/except google.colab)
- Guard all /content/ paths behind IS_COLAB check
- Local paths resolve relative to Machine_Learning/ directory
- Remove unused imports (tarfile, pathlib, duplicate PIL)
- Consolidate sklearn imports into cell 2

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-11 15:17:32 +00:00
MythEclipseandClaude e791a71425 chore: trim requirements.txt to only ML pipeline deps, fix venv path, add .venv to gitignore
- requirements.txt: 230 → 11 top-level packages (removed transitive deps, CUDA/JAX/PyTorch/HuggingFace/Jupyter noise)
- CLAUDE.md: update venv setup to point at repo-root .venv
- .gitignore: add .venv/ and venv/ entries
- Memory: record venv location to avoid duplicate creation

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-11 15:14:55 +00:00
Asep Haryana SaputraandGitHub 790acab275 Merge pull request #26 from MythEclipse/main
remove model
2026-06-11 20:39:42 +07:00
MythEclipseandClaude 837cfe933a feat: push deploy pipeline - auth, sidebar layout, ML artifacts, LFS
Notable changes:
- Add .gitattributes for LFS tracking on ML model artifacts
- Add AuthGuard to all protected routes + login/register/logout flow
- Add collapsible Sidebar replacing old Navbar
- Redesign MainLayout with sidebar + mobile header
- Add password show/hide toggle to AuthForm
- Add Logout button to MobileNav
- Update footer credit to ATLAS Project - Pijak x IBM SkillsBuild
- Update deploy.yml: generate ONNX in CI (vs HuggingFace download)
- Remove deprecated ML scripts (download/upload model .sh, .gitignore)
- Remove stale MEMORY.md
- Add ML model artifacts (TFLite, SavedModel, TFJS)
- Update notebook.ipynb training pipeline

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-11 20:26:48 +07:00
MythEclipse 3e2f04413e chore(ml): remove machine learning model files 2026-06-11 20:23:57 +07:00
Selly SupriyatinandGitHub 65ebeb94da Merge pull request #25 from ATLAS-PJK-GM007/selly/frontend
Selly/frontend
2026-06-08 21:41:28 +07:00
seriouselly cb90d23293 feat(footer): automate copyright year
- Import `Date` object to dynamically fetch the current year for the copyright notice.
- Ensure the footer always displays the correct year without manual updates.
2026-06-08 21:38:50 +07:00
seriouselly d7a145f18f refactor(layout): unify mobile and desktop navigation and fix layout spacing
- Sync `MobileNav` items and icons with desktop `Sidebar` for consistency.
- Standardize menu icons using `lucide-react` across all navigation components.
- Add a spacer div in `main-layout.tsx` to ensure proper bottom spacing between content and the fixed footer.
- Remove redundant 'aria-hidden' attribute in `MobileNav` to fix accessibility warnings.
- Fix 'Logout' button layout in mobile menu for better responsiveness.
2026-06-08 21:32:52 +07:00
seriouselly 4a44d21e66 feat(auth): add password visibility toggle in auth form
- Introduce `showPassword` state in the `AuthForm` component to allow users to show or hide their password.
- Implement `Eye` and `EyeOff` icons from `lucide-react` for the toggle button UI.
- Change password input type dynamically between 'password' and 'text'.
- Clean up unused `eye` icon import from `login-page.tsx`.
2026-06-08 21:19:57 +07:00
seriouselly 70c216ac54 Merge branch 'main' of https://github.com/ATLAS-PJK-GM007/ZeaVis-Edu into selly/frontend 2026-06-08 21:06:11 +07:00
seriouselly af69dc4df7 refactor(layout): implement responsive sidebar and synchronize mobile menu
- Create a new `Sidebar` component for desktop with collapse/mini-sidebar feature.
- Rename `navbar.tsx` to `mobile-header.tsx` to better reflect its mobile-specific purpose.
- Synchronize icons (from lucide-react) and menu labels between desktop `Sidebar` and touch-based `MobileNav`.
- Fix 'Logout' button sizing in the mobile menu by removing forced margins for better responsiveness on narrow screens.
- Remove conflicting 'aria-hidden' attribute in MobileNav to resolve browser accessibility (a11y) warnings.
- Add a spacer in `main-layout.tsx` to prevent the bottom content from being overlapped by the fixed Footer.
2026-06-08 21:00:55 +07:00
seriouselly 22ddd2d24e Merge branch 'main' of https://github.com/ATLAS-PJK-GM007/ZeaVis-Edu into selly/frontend 2026-06-08 17:21:27 +07:00
MythEclipse 09602b3fe0 refactor(web): add value formatter to ChartCard component
Introduce a `valueFormatter` prop to the `ChartCard` component to allow
customized data presentation in tooltips. This enables more readable
units for specific metrics, such as converting bytes to MiB or
seconds to milliseconds.
2026-06-08 02:03:23 +07:00
MythEclipse b0dd1f289a chore(api): update uploader base URL domain
Update the default `uploaderBaseUrl` from `.tech` to `.my.id` due to the
previous domain being decommissioned.
2026-06-08 01:53:02 +07:00
MythEclipse 64dcfa70d8 feat(web): add client-side telemetry for API calls, errors, and scan operations 2026-06-08 01:23:51 +07:00