Commit Graph

94 Commits

Author SHA1 Message Date
alireza d9865c5bfe feat: show 1 post with auto-slider, touch swipe and dots on mobile view 2026-08-25 16:15:14 +03:30
alireza dc7e60cdd5 style: clean up Technogen card typography, remove dense subtitle blocks and harmonize heights 2026-08-25 16:13:25 +03:30
alireza c2147d3b8c fix: display full whole titles on Technogen cards without truncation 2026-08-25 16:11:13 +03:30
alireza b595699133 feat: remove card labels and add breathing gold border glow animation 2026-08-25 16:09:45 +03:30
alireza a798a4b5ce feat: convert Technogen section to 5-card row style like Factory Reports with auto-slider 2026-08-25 15:52:38 +03:30
alireza 11b13a31ae style: move slider navigation bar below cards to align left and right column heights 2026-08-25 15:51:15 +03:30
alireza 2f8984ebaa fix: swap slider navigation arrow icons direction 2026-08-25 15:50:02 +03:30
alireza dbf9d63f39 feat: add paginated slider carousel for Technogen analytical notes 2026-08-25 15:48:02 +03:30
alireza c6fc734a9e style: remove TGN code labels and page counts, add contrasting luxury dark navy background to Technogen section 2026-08-25 15:45:10 +03:30
alireza bda94d7124 refactor: convert Technogen section to compact bento grid layout and add gold accent line 2026-08-25 15:42:47 +03:30
alireza 2c299776b5 feat: add Technogen reports section with PDF downloads and CMS management 2026-08-25 15:39:02 +03:30
alireza ae69f310df feat: sync latest changes and include environment configurations 2026-08-25 15:19:17 +03:30
alireza c9e6be287e feat: update and harden steel foresight 2026-07-16 09:07:33 +03:30
alireza 03405e3f5d feat: implement content generator for steel sector editorial generation
- Added content-generator.js to handle the generation of "At a Glance" and "Radar Future" articles.
- Integrated OpenAI API for generating editorial content based on provided news and sources.
- Implemented job management for tracking the status of content generation tasks.
- Added functions for fetching news, processing source materials, and creating drafts for articles.
- Established structured prompts for AI to ensure content adheres to specified formats and requirements.
2026-07-04 17:03:29 +03:30
alireza 9b5c1b5719 feat: Add caveman skills for compression, review, help, and stats
- Implemented `caveman-compress` skill to detect and compress natural language files.
- Created `caveman-review` skill for generating concise code review comments.
- Added `caveman-help` skill providing a quick-reference card for commands and modes.
- Developed `caveman-stats` skill to report real token usage and savings from the session log.
- Updated README and SKILL.md files for all new skills with usage instructions and examples.
- Introduced a script to clear banners from the database.
- Updated skills-lock.json to include new skills and their metadata.
2026-07-04 10:40:11 +03:30
alireza 3622299b08 feat: implement news aggregation pipeline and expand frontend infrastructure with new site sections and pages 2026-07-04 08:52:12 +03:30
alireza 245097c0f2 feat: update membership gate copy for clarity and engagement
feat: add file_url column to factory_reports and update related queries

chore: upgrade nodemailer to version 9.0.1 and undici to version 7.28.0

feat: enhance factory report editor with file upload functionality for PDFs

fix: increase bcrypt hash rounds for improved password security

fix: restrict file uploads to video, audio, and PDF formats

chore: implement safe URL handling for banner CTA links

chore: seed radar_items with random dates, sources, and tags for consistency

add: new image asset for chart analysis
2026-06-29 17:06:42 +03:30
alireza 5a3d405ff4 fix: update VITE_PANEL_API URL and improve login form accessibility
refactor: streamline SpreadFeatures component by removing unused video handling
feat: implement SSO hand-off for Statista integration in server
2026-06-29 14:23:24 +03:30
alireza fc103c8534 Add stack-specific hardening guidelines for Node + Postgres/MySQL applications
This document provides detailed security measures tailored for applications using Node.js with Postgres or MySQL, including authentication, authorization, file uploads, Stripe integration, and more. It emphasizes the importance of rebuilding safety nets such as Postgres Row Level Security and implementing strict ownership checks to mitigate risks associated with direct database access. Additionally, it covers best practices for CORS, CSRF protection, error handling, and secrets management, ensuring a comprehensive approach to securing the stack.
2026-06-27 17:10:53 +03:30
alireza 406717be13 refactor: clean up frontend dependencies and remove unused files
- Removed several unused dependencies from frontend package.json including @tabler/icons-react, @tanstack/react-query, cobe, dotted-map, and jalaali-js.
- Deleted the hero-bg.original.mp4 video file as it was no longer needed.
- Removed live_dashboard.html and live_prices.js files, which were part of the old dashboard implementation.
- Eliminated the scraper.py script and related price fetching logic from the server, streamlining the backend.
- Removed the rtk.exe binary file as it was not required.
2026-06-27 16:00:59 +03:30
alireza 6a3b0db2ec Remove unused sections: ReportsCarouselSection, SpecialSpreadSection, SustainabilitySection, and TeamSection 2026-06-27 16:00:39 +03:30
alireza b1ce43bc7b feat: enhance RTL support and add service worker for PWA
- Updated CSS to improve touch actions and text size adjustment for RTL layout.
- Modified ticker animation for RTL direction.
- Implemented service worker registration for production builds to enable offline capabilities.
- Enhanced Archive page to utilize search parameters and dynamically generate categories.
- Improved AtAGlance component with new modal design and updated content structure.
- Added keyword animation feature to the AuthPage for a more engaging login experience.
- Created a new SearchResults component to aggregate and display search results from various content sources.
- Introduced a minimal service worker to cache responses and support offline functionality.
2026-06-27 14:31:55 +03:30
alireza dea0105899 feat: update contact information and improve expert network subtitles for clarity 2026-06-27 09:23:59 +03:30
alireza b2e9bcdf40 feat: phone+OTP auth, profile redesign, At-a-Glance Figma polish, radar/article fixes
- Auth: phone-or-email login, OTP login/signup (Kavenegar SFsignin/SFsignup),
  register-verify + password-otp endpoints, OTP-login session fix
- Profile page redesign (menu right / data left, RTL) + SMS password reset
- At a Glance: Figma-matched cards (gold pill badge, gray cards, meta), category
  rename, computed counts, animated news ticker, summit banner, 5-line gated preview
- About page: remove board banner, selectable dept tabs, contact section
- Radar: fix duplicated MiniCard excerpt; gate -> our own auth (login/register)
- Footer trust badges + flag-image language toggle; site-wide Persian digits
2026-06-23 16:56:16 +03:30
alireza dce09cbd23 Refactor authentication handling across PostDetail, ProfilePage, Radar, and RadarPost components
- Replaced localStorage-based authentication checks with context-based checks using useAuth.
- Updated login handling in PostDetail to navigate to the login page instead of setting localStorage directly.
- Simplified ProfilePage to check for member presence instead of token.
- Removed token dependency from InfoTab, PasswordTab, and ContentTab components.
- Adjusted Radar and RadarPost components to utilize context for authentication state.
2026-06-18 08:47:00 +03:30
alireza 4246b3a68a feat: add RadarPost page with membership gate and related sidebar
fix: redirect to archive instead of reports on missing report in ReportDetail

refactor: remove Reports page and its related components

chore: add proxy configuration for API and uploads in Vite
2026-06-18 08:45:02 +03:30
alireza 07239bd811 feat: radar category pages, post detail page, panel CMS wiring + webp uploads
- Add /radar/:category dynamic detail pages (hero, special banner, grids, pagination)
- Add /posts/:id article page: cover mask, magic-text scroll reveal, charts,
  comments, floating related sidebar, logged-out membership gate
- Panel: radar_pages table/routes + admin UI, grouped right sidebar, webp
  image conversion on upload (sharp)
- Mobile fixes: overflow-x guards, left-side accordion menu, globe/podcast/hero
- Header: flag language toggle

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 17:01:28 +03:30
alireza 3ba233ee0b feat: add Experts page component and avatar placeholder icon 2026-06-11 11:58:29 +03:30
alireza 12326898b3 feat: implement application router and dynamic feature section on the home page 2026-06-11 11:49:19 +03:30
alireza 896cc662ab feat: add StrategicEvents, AtAGlance, and VideocastPodcast sections to home page 2026-06-11 11:23:31 +03:30
alireza 238464e073 THU figma redesign 2026-06-11 11:00:17 +03:30
alireza ee4892df75 @
Globe: more arcs across 27 cities with 8 varied colors

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
2026-06-10 16:53:58 +03:30
alireza eecbb9acbb @
Scanner section: move heading to right column, globe alone on left, no divider

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
2026-06-10 16:51:32 +03:30
alireza 775dbbf78d @
Event calendar next to globe: neon-yellow breathing date markers

- Native Jalali calendar (Intl Persian calendar, no deps) replacing the events
  list; conference days marked with neon-yellow breathing glow + hover detail card
- Remove events-column background

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
2026-06-10 16:44:47 +03:30
alireza 6f8409b8f0 @
Globe: lighter blue material, brighter dots/atmosphere/lights for visibility

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
2026-06-10 16:28:53 +03:30
alireza d483ed791b @
Rebrand colors: gold #c9a227->#CD9E53, navy #071d49->#032340 site-wide

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
2026-06-10 15:47:49 +03:30
alireza 1f3099f6db @
Footer brand flanking lines; replace orange accent with #CD9E53

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
2026-06-10 15:40:32 +03:30
alireza d67c0a1d7d @
Footer: curve to left side, bigger centered brand logo

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
2026-06-10 15:25:34 +03:30
alireza ee49868077 @
Footer: curved top edge with scroll-to-top button

- SVG curved top notch matching the Figma (page color shows through the dip)
- Centered scroll-to-top button (ChevronsUp) with smooth scroll, gold hover

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
2026-06-10 15:21:15 +03:30
alireza 042a64fc92 @
three-globe globe (hex polygons + arcs), navbar chevron cleanup

- Globe: real three-globe World via r3f <primitive> (no JSX augmentation),
  hex-polygon countries + animated steel-trade arcs, bundled Natural Earth data
- Header: type nav Section.Icon as LucideIcon (fixes r3f JSX type clash);
  remove chevron from non-dropdown items (only radar/media dropdowns keep it)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
2026-06-10 15:12:51 +03:30
alireza 9043f62b27 @
Navbar restructure, footer redesign, cobe globe, approach section

- Navbar: نبض صنعت (->/pulse), رسانه و رویداد dropdown (videocast/sessions/events),
  generalized NavDropdown; logo -> Frame 2095585206 (2).png
- Footer: 3-col RTL layout (brand+socials / nav / contact+badges+newsletter),
  white logo, gold copyright bar
- RadarTechSection: replace tech-frontier with «رویکرد ما» approach cards
- MapEventsSection: swap static map for animated cobe WebGL globe (blue theme)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
2026-06-10 14:56:41 +03:30
alireza 121082abc9 @
Podcast polish: taller videocast, redesigned player + episode list

- Videocast featured height 200 -> 440px, rounded
- Podcast: full-width navy player card (cover, progress, controls) + clean
  episode list with active highlight; RTL-correct prev/next + play direction

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
2026-06-10 12:07:17 +03:30
alireza 27e64ee3e6 @
Home polish: brand copy, footer, section reorg, smaller reports, split casts

- Tab title -> "اندیشکده فولاد آینده"; header/footer subtitle -> The Steel Futures Institute
- Footer: brand description, social links (LinkedIn/Twitter/Aparat/Telegram), drop nav links
- Remove de-zoom HeroSection; SpreadFeatures is now the hero
- Comment out InternalNewsSection + RiskSection (restorable)
- Move IntegrationsSection under RadarTechSection
- FactoryReportsScroll: compact 4-up row instead of large masonry
- Split Videocast and Podcast into separate full-width sections (only prop)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
2026-06-10 11:47:30 +03:30
alireza 74a8bf567e @
Home revamp: Spread-style hero, sections, and Lenis+GSAP smooth scroll

- Hero: GSAP ScrollTrigger de-zoom (full-bleed image -> centered card +
  satellite scatter), pinned scrub timeline
- Lenis smooth scroll synced to GSAP ticker (desktop only; native momentum
  on touch to avoid iOS double-smoothing); removed conflicting
  scroll-behavior:smooth
- SpreadFeatures: 3 alternating image/text slides with crossfade + blur fade-up
- Radar page + home: report cards with hover author-reveal; data in src/content
- AtAGlance: standalone page + slider; IntegrationsSection data-source grid
- NewsletterMarquee: looping clickable steel-newsletter ticker with live dots
- FactoryReportsScroll, Videocast/Podcast sections
- Remove dead FactoryNewsletterLayout + SteelNewsletterSection
- Content layer under src/content for panel-ready data

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
2026-06-10 10:13:23 +03:30
alireza 269d6c7374 Update logo, add slider images to public, restore hero video
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 16:57:35 +03:30
alireza b3e8308f21 Fix gitattributes merge conflict marker
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 15:38:41 +03:30
alireza 7d7063b6e8 Pulse page: live market bar, price table, product coverage, form, i18n
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 15:16:46 +03:30
alireza 743888429b Security hardening + navbar restructure
Security fixes:
- JWT_SECRET/ADMIN_PASSWORD fail-fast on missing/weak values
- Switch admin auth from localStorage to httpOnly cookie
- Rate limiting on login (10/15min) and contact form (3/10min)
- CORS whitelist via ALLOWED_ORIGINS env var
- Helmet with CSP, frameguard
- Escape HTML in contact email and admin panel innerHTML
- Remove SVG from upload whitelist
- err.message no longer leaked in API responses
- MAIL_TO moved to env var
- JWT expiry 7d → 24h

Navbar:
- Rename: رادار آینده → آینده‌پژوهی و رصد هوشمند
- Rename: مرز فناوری → فناوری و نوآوری
- Rename: نبض صنعت → بازار و زنجیره فولاد
- Add: پایداری و فولاد سبز (/sustainability)
- Add: ژئوپلیتیک و اقتصاد جهانی (/geopolitics)
- Remove: رویدادها

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 14:37:30 +03:30
alireza 1f72b528d7 Hero subtitle: smaller font on mobile 2026-06-01 11:25:11 +03:30
alireza 780abc7f63 Hero title: single line on mobile with responsive font size 2026-06-01 11:24:27 +03:30