
Digikala Dynamic Presentation Generator
A web app that turns Digikala's annual report into shareable online presentations — a viewer for the audience and an admin panel to build them.
Overview
A platform built for Digikala to publish the sections of its annual report as interactive online presentations instead of static files. An employee or manager can assemble the sections they want into a ready-to-show deck and share its link for a meeting. The project has two halves: the viewer the audience sees, and the panel where decks are authored and managed.
The viewer — what the audience sees
Each deck opens through a unique link and an access key. The cover is a frosted-glass card over a background image showing the title, presenter, Jalaali date, and page count, with a single Start button into the slides. From there it's a fully right-to-left slideshow: pagination, animated slide transitions, data charts, and AI-generated imagery.
The admin panel — authoring & management
Where decks get made. After signing in (token-based auth), a user lands on a dashboard listing every presentation with its title, presenter, creation date, and slide count, plus edit, preview, and delete actions. Building a deck is two steps: a form for the cover page (unique link, background image, title, subtitle, presenter, date, and access key) and a drag-and-drop slide editor to add, reorder, and remove slides. Admins also manage and approve user accounts.
Under the hood
ReactUI with modular styling viaCSS Modules- Server-state and caching with
React Query(migrated offContext APIto cut needless re-renders) - Drag-and-drop slide editor with
dnd-kit, forms handled withreact-hook-form - Charts with
Chart.js, slide animations withFramer Motion - Image uploads on
Supabase,JWT-token authentication - Jalaali dates with
moment-jalaali, tested withVitestandReact Testing Library