Enterprise web app · Knowledge management Private

Enterprise Knowledge Management System

سامانه‌ی هوشمند مدیریت دانش سازمانی

A system that captures, organises and searches the know-how of the staff at Master Foodeh, a manufacturing company, so it is not lost. Employees record knowledge with attachments, files are turned into searchable text with AI, colleagues rate each other's knowledge and a chatbot answers questions from it. I designed and built the entire user interface.

Non-technical users had to attach many kinds of files effortlessly and turn them into knowledge text; the interface had to be fully Persian and right-to-left with Persian digits and the Jalali calendar; users have different permissions (create, approve, assess, pro features) and must see only what they are allowed to; and the system runs on an internal, air-gapped server.

In the knowledge form you drop any number of files at once; each file's type is detected automatically and it lands in its own group (audio, image, PDF, Word, other documents). Every file is a card with a preview, its knowledge text box and delete, download and convert-to-text actions. Voice can be recorded right in the browser, and file-to-text has two routes: standard for text-based files and pro (AI) for images, handwriting and complex PDFs; the pro button is shown locked to users without access so they know the feature exists.

Rating is a single click on a coloured 1–10 scale, after which the row locks. The knowledge-champions page shows overall, seasonal and department rankings with user levels and badges, and each user's performance report breaks down points and created/approved/rejected knowledge by domain. Advanced search filters by sub-domain, knowledge type, author, Jalali date range and file type and size, and the chatbot has a messenger-style UI with history, pinning and like/dislike on answers.

The UI is fully responsive and installable as a PWA, menus and actions are built from each user's permissions, and sign-in goes through Keycloak SSO. I built a mock data layer so the whole UI runs and can be tested without the backend; it is deployed with Docker and Nginx to an offline internal server with one-step rollback, and I tracked down and fixed real bugs from production logs.

Key features

  • Drop many files at once, auto-grouped by type (audio, image, PDF, Word, other)
  • Attachment cards with preview, knowledge text and delete/download/convert actions
  • In-browser voice recording; the microphone is requested only when recording starts
  • Standard and pro (AI) file-to-text, shown locked to users without access
  • One-click 1–10 rating that locks once saved, matching the backend's rules
  • Knowledge champions: overall, seasonal and department rankings with levels and badges
  • Per-user performance report broken down by domain
  • Simple and advanced search with Jalali dates and file type/size filters
  • Chatbot with history, pinning, search, copy and like/dislike
  • Responsive PWA, permission-driven menus and Keycloak SSO
  • Mock data layer to run and test the UI without the backend
  • Docker and Nginx deployment to an offline internal server

Technologies

Angular 18TypeScriptPrimeNGPrimeFlexSCSSKeycloak SSOChart.jsPWADockerNginxRTL UI

My role

Front-end developer: UI design and Angular implementation

An internal Master Foodeh system with no public version or published source. Freelance work; I was responsible for the front end only. All screenshots come from the development build with mock data.

Screenshots

Dashboard: system-wide statistics, approved file volumes and the user's own performance, level and points
Dashboard: system-wide statistics, approved file volumes and the user's own performance, level and points
Knowledge form: classification, title with the confidential switch, and attachments grouped automatically by type
Knowledge form: classification, title with the confidential switch, and attachments grouped automatically by type
Smart attachments: each file becomes a card with a player, its knowledge text and actions
Smart attachments: each file becomes a card with a player, its knowledge text and actions
AI file-to-text (pro): the pro button with its gold badge and a usage tooltip
AI file-to-text (pro): the pro button with its gold badge and a usage tooltip
Recording audio in the browser and adding it as an attachment
Recording audio in the browser and adding it as an attachment
One-click rating on a coloured 1–10 scale
One-click rating on a coloured 1–10 scale
A saved, locked rating with the list of assessments and comments
A saved, locked rating with the list of assessments and comments
Knowledge champions: overall, seasonal and department rankings with user levels and badges
Knowledge champions: overall, seasonal and department rankings with user levels and badges
User performance report: points, badges and knowledge counts
User performance report: points, badges and knowledge counts
AI chatbot answering from the recorded knowledge, with conversation history
AI chatbot answering from the recorded knowledge, with conversation history
Advanced search filtered by sub-domain, knowledge type, author, Jalali dates and file type and size
Advanced search filtered by sub-domain, knowledge type, author, Jalali dates and file type and size
The knowledge form on a phone
The knowledge form on a phone
An attachment card on a phone, with its actions stacked under the text
An attachment card on a phone, with its actions stacked under the text
The performance report at phone width
The performance report at phone width