[{"data":1,"prerenderedAt":814},["ShallowReactive",2],{"navigation":3,"project-en\u002Fprojects\u002Ftelepatty":32,"project-surround-en\u002Fprojects\u002F":163},[4,19],{"title":5,"path":6,"stem":7,"children":8,"page":18},"En","\u002Fen\u002F","en",[9],{"title":10,"path":11,"stem":12,"children":13,"page":18},"Blog","\u002Fen\u002Fblog\u002F","en\u002Fblog",[14],{"title":15,"path":16,"stem":17},"The Process of Building a Serverless Messenger, From Idea to Implementation","\u002Fen\u002Fblog\u002Fserverless_messenger\u002F","en\u002Fblog\u002Fserverless_messenger",false,{"title":20,"path":21,"stem":22,"children":23,"page":18},"Fa","\u002F","fa",[24],{"title":10,"path":25,"stem":26,"children":27,"page":18},"\u002Fblog\u002F","fa\u002Fblog",[28],{"title":29,"path":30,"stem":31},"فرایند ساخت یک پیام‌رسان بدون سرور، از ایده تا اجرا","\u002Fblog\u002Fserverless_messenger\u002F","fa\u002Fblog\u002Fserverless_messenger",{"id":33,"title":34,"body":35,"client":115,"date":116,"description":117,"details":118,"duration":122,"extension":123,"image":124,"media":125,"meta":147,"navigation":148,"path":149,"platform":150,"role":151,"seo":152,"stem":153,"tags":154,"url":160,"year":161,"__hash__":162},"projects\u002Fen\u002Fprojects\u002Ftelepatty.md","Telepatty",{"type":36,"value":37,"toc":108},"minimark",[38,43,47,50,54,57,60,95,99,102,105],[39,40,42],"h2",{"id":41},"project-overview","Project Overview",[44,45,46],"p",{},"Telepatty is a messenger that runs entirely in the browser, with no installation or account required. Unlike ordinary messengers that keep accounts and conversation content on a central server, in this project the user's identity, encryption keys, and message history stay only on their own device — there is no central server for this project at all.",[44,48,49],{},"The core problem this project solves is that server-based messengers share three weaknesses: conversation content is exposed to whoever owns the server, the user's account is effectively held hostage by that server, and keeping a server running around the clock is itself a constant cost and burden. Telepatty tries to provide content security, offline message delivery, and full conversation history all at once — without relying on any dedicated server of its own.",[39,51,53],{"id":52},"approach","Approach",[44,55,56],{},"The project's architecture rests on three main pillars: the entire app is a static web app (PWA) with no server-side API or database; offline message delivery runs through public relays of the Nostr protocol, which only pass along an encrypted packet without ever seeing its content; and live chat and file transfer run over a direct WebRTC connection between the two browsers, with no intermediary involved at all.",[44,58,59],{},"On top of these three pillars, several technical layers were implemented:",[61,62,63,71,77,83,89],"ul",{},[64,65,66,70],"li",{},[67,68,69],"strong",{},"Identity:"," Instead of registration, each user gets a cryptographic key pair (secp256k1) generated for them; the private key is protected with a passphrase and AES-256-GCM encryption, and is never stored in raw form.",[64,72,73,76],{},[67,74,75],{},"Message wrapping:"," Each message is signed and encrypted in multiple layers before being sent (based on the NIP-44 and NIP-59 standards), so that any relay holding the packet can see neither the message content, nor the sender, nor even the message type.",[64,78,79,82],{},[67,80,81],{},"Routing:"," A central component in the app decides, for each message, whether to go through a direct channel (if the other party is online) or through a public relay (if they're offline); if neither path is available, the message stays in an outbox and is retried with exponential backoff.",[64,84,85,88],{},[67,86,87],{},"Ordering and persistence:"," Instead of relying on device clocks (which can't be trusted), each conversation has a logical counter (Lamport clock) that guarantees message ordering; messages, contacts, and settings are also stored in the browser's local database (IndexedDB).",[64,90,91,94],{},[67,92,93],{},"Files and photos:"," The file header (name, type, hash) is sent as a regular encrypted message, but the actual file bytes only ever pass through the direct channel between the two devices, in chunks, with the ability to resume from the last incomplete chunk if the connection drops.",[39,96,98],{"id":97},"challenge","Challenge",[44,100,101],{},"The biggest challenge was guaranteeing three things at once, without relying on any dedicated server: content security, offline message delivery, and complete conversation history. These three goals are usually in tension with each other, and achieving one typically comes at the cost of another.",[44,103,104],{},"Another technical challenge was keeping message ordering consistent without relying on device clocks, since phone clocks can be wrong or inconsistent. Implementing a logical counter (Lamport clock) solved this problem and kept conversation ordering stable even with incorrect clocks.",[44,106,107],{},"A further challenge concerned file transfer: it had to be guaranteed that no file bytes ever passed through the public relays, while also working within the constraint that both parties had to be online at the same time. To ensure the correctness of this logic, along with the encryption and routing logic, more than 340 unit tests across 42 files were written, covering the app's core logic independent of its UI.",{"title":109,"searchDepth":110,"depth":110,"links":111},"",2,[112,113,114],{"id":41,"depth":110,"text":42},{"id":52,"depth":110,"text":53},{"id":97,"depth":110,"text":98},"Personal Project","2026-09-20","A serverless messenger that keeps the user",[119],{"label":120,"value":121},"Focus","End-to-end message encryption, offline delivery through public relays, direct peer-to-peer live communication, and file transfer without passing through a central server","2 months","md","\u002Fimages\u002Fprojects\u002Ftelepatty\u002F1.webp",[126,129,131,133,135,137,139,141,143,145],{"type":127,"src":128},"video","\u002Fimages\u002Fprojects\u002Ftelepatty\u002F1v.webm",{"type":130,"src":124},"image",{"type":130,"src":132},"\u002Fimages\u002Fprojects\u002Ftelepatty\u002F2.webp",{"type":130,"src":134},"\u002Fimages\u002Fprojects\u002Ftelepatty\u002F3.webp",{"type":130,"src":136},"\u002Fimages\u002Fprojects\u002Ftelepatty\u002F4.webp",{"type":130,"src":138},"\u002Fimages\u002Fprojects\u002Ftelepatty\u002F5.webp",{"type":130,"src":140},"\u002Fimages\u002Fprojects\u002Ftelepatty\u002F6.webp",{"type":130,"src":142},"\u002Fimages\u002Fprojects\u002Ftelepatty\u002F7.webp",{"type":130,"src":144},"\u002Fimages\u002Fprojects\u002Ftelepatty\u002F8.webp",{"type":130,"src":146},"\u002Fimages\u002Fprojects\u002Ftelepatty\u002F9.webp",{},true,"\u002Fen\u002Fprojects\u002Ftelepatty","Web Application (PWA)","Full-stack developer of the project (architecture design, frontend implementation, and encryption\u002Fprotocol layers)",{"title":34,"description":117},"en\u002Fprojects\u002Ftelepatty",[155,156,157,158,159],"Serverless","Encryption","PWA","WebRTC","Nostr","https:\u002F\u002Ftelepatty.ir","2026","ZS1OATRo1aJoZeQlIrYBKWUUeJ40qLQLcr6W1UAlY7Y",[164,230,376,472,520,578,658,751],{"id":33,"title":34,"body":165,"client":115,"date":116,"description":117,"details":214,"duration":122,"extension":123,"image":124,"media":216,"meta":227,"navigation":148,"path":149,"platform":150,"role":151,"seo":228,"stem":153,"tags":229,"url":160,"year":161,"__hash__":162},{"type":36,"value":166,"toc":209},[167,169,171,173,175,177,179,201,203,205,207],[39,168,42],{"id":41},[44,170,46],{},[44,172,49],{},[39,174,53],{"id":52},[44,176,56],{},[44,178,59],{},[61,180,181,185,189,193,197],{},[64,182,183,70],{},[67,184,69],{},[64,186,187,76],{},[67,188,75],{},[64,190,191,82],{},[67,192,81],{},[64,194,195,88],{},[67,196,87],{},[64,198,199,94],{},[67,200,93],{},[39,202,98],{"id":97},[44,204,101],{},[44,206,104],{},[44,208,107],{},{"title":109,"searchDepth":110,"depth":110,"links":210},[211,212,213],{"id":41,"depth":110,"text":42},{"id":52,"depth":110,"text":53},{"id":97,"depth":110,"text":98},[215],{"label":120,"value":121},[217,218,219,220,221,222,223,224,225,226],{"type":127,"src":128},{"type":130,"src":124},{"type":130,"src":132},{"type":130,"src":134},{"type":130,"src":136},{"type":130,"src":138},{"type":130,"src":140},{"type":130,"src":142},{"type":130,"src":144},{"type":130,"src":146},{},{"title":34,"description":117},[155,156,157,158,159],{"id":231,"title":232,"body":233,"client":232,"date":332,"description":333,"details":334,"duration":337,"extension":123,"image":338,"media":339,"meta":357,"navigation":148,"path":358,"platform":359,"role":360,"seo":361,"stem":362,"tags":363,"url":373,"year":374,"__hash__":375},"projects\u002Fen\u002Fprojects\u002Fsana-app.md","Sana ERP",{"type":36,"value":234,"toc":327},[235,237,240,243,246,248,251,254,257,295,298,301,303,306,309,312,315,318,321,324],[39,236,42],{"id":41},[44,238,239],{},"Sana is a comprehensive and integrated system for school management, designed for schools of any grade level, bringing together various educational, administrative, financial, and communication departments of a school into a single unified platform.",[44,241,242],{},"The main goal of the project was to create a modern and simple experience for all school users; from students and parents to teachers, vice principals, counselors, and other administrative staff. Instead of using several separate systems for recording grades, exams, attendance, and financial affairs and school management, all these processes have been made available in a single integrated system.",[44,244,245],{},"In designing this system, I tried to make sure the user interface not only had a modern appearance but was also simple and understandable to use for users of different ages and levels of familiarity with software. For this reason, in the UI\u002FUX section, I focused on proper page structure, quick access to features, information organization, and reducing the complexity of the user experience.",[39,247,53],{"id":52},[44,249,250],{},"This project is a comprehensive educational and school management platform that brings together all stakeholders of a school — including students, teachers, counselors, vice principals, and other administrative staff, as well as parents — into a single unified platform.",[44,252,253],{},"The system is designed based on user roles, and each group has access to the sections relevant to their tasks. In this way, the information and features needed by each user are made available without cluttering the user interface.",[44,255,256],{},"The main sections of the system include:",[61,258,259,262,265,268,271,274,277,280,283,286,289,292],{},[64,260,261],{},"Management of students and parents",[64,263,264],{},"Management of teachers and school administrative staff",[64,266,267],{},"Weekly class schedule",[64,269,270],{},"Academic calendar",[64,272,273],{},"Registration and administration of online exams",[64,275,276],{},"Grade recording and academic evaluation",[64,278,279],{},"Issuing and viewing report cards",[64,281,282],{},"Reporting on students' academic progress",[64,284,285],{},"Attendance management",[64,287,288],{},"Tuition and school financial management",[64,290,291],{},"Management of vice principals, counselors, and other staff",[64,293,294],{},"Providing information and features tailored to each user's role",[44,296,297],{},"One of the important parts of the project was integrating these features into a single unified system. For example, information about students, classes, teachers, grades, and financial status needed to be usable across different sections of the system, while each user could only view the information authorized for their role.",[44,299,300],{},"In the user interface design, I tried to use modern UI\u002FUX patterns to make working with the system simpler for different users. From the page structure and how information is displayed, to forms, tables, dashboards, and the path to accessing features, everything was designed with the goal of reducing confusion and improving the user experience.",[39,302,98],{"id":97},[44,304,305],{},"One of the main challenges of the project was implementing a relatively large system with several interdependent sections in less than three months. During this time, in addition to frontend development, I also participated in part of the backend implementation and UI\u002FUX design; therefore, I needed to simultaneously focus on the user experience, technical structure, and system performance.",[44,307,308],{},"Another important challenge was designing and implementing three completely separate panels for management and administrative staff, teachers, and students and parents. Each panel had its own specific requirements and processes, but all of them needed to connect to a central system and use information in an integrated way.",[44,310,311],{},"To solve this issue, the project structure was designed and implemented in a modular way based on Clean Architecture, so that different parts of the system would not have direct dependencies on one another, making development and maintenance simpler. This structure helped keep the business logic separate from the details of the user interface and infrastructure, allowing each section to be developed in a more organized manner.",[44,313,314],{},"In the data layer as well, the relationships between students, parents, teachers, classes, exams, grades, attendance, and financial transactions were of great importance. The smallest inconsistency in these relationships could cause incorrect information to be displayed in one of the panels. For this reason, designing the connections between sections and properly managing the data were important parts of the development process.",[44,316,317],{},"Optimizing the system's speed was another challenge of the project. The volume of information such as grades, attendance, financial transactions, and academic reports could affect response time and user experience. For this reason, I focused on optimizing the database structure, reducing unnecessary requests, better managing data received from the server, and improving the page loading process so that the system would run more smoothly in daily use.",[44,319,320],{},"On the frontend side, one of the challenges was displaying a large amount of information without cluttering the user interface. To solve this, organized structures were used for dashboards, forms, tables, and various sections so that users could reach the information they needed more quickly.",[44,322,323],{},"Security and access control were also very important due to the sensitivity of information related to students, parents, teachers, and financial matters. Each user needed to have access only to the sections and information authorized for their role. For this reason, authentication, request validation, and access-level management were given careful attention in the design and implementation of the system.",[44,325,326],{},"Ultimately, the goal was to build an integrated, scalable, and usable system despite the wide range of features and differing user needs; a system that would be suitable for the school's users in terms of user experience, and would also provide a solid technical foundation for developing future features.",{"title":109,"searchDepth":110,"depth":110,"links":328},[329,330,331],{"id":41,"depth":110,"text":42},{"id":52,"depth":110,"text":53},{"id":97,"depth":110,"text":98},"2026-04-21","A comprehensive and integrated organizational management system for Sana, designed to manage production processes, warehousing, office automation, and other organizational departments",[335],{"label":120,"value":336},"Integrating production processes, warehousing, office automation, user management, and other organizational departments into a single unified system","Continuously under development","\u002Fimages\u002Fprojects\u002Fsanaapp\u002F8.webp",[340,342,344,346,348,350,352,354,356],{"type":127,"src":341},"\u002Fimages\u002Fprojects\u002Fsanaapp\u002F1v.webm",{"type":130,"src":343},"\u002Fimages\u002Fprojects\u002Fsanaapp\u002F1.webp",{"type":130,"src":345},"\u002Fimages\u002Fprojects\u002Fsanaapp\u002F2.webp",{"type":130,"src":347},"\u002Fimages\u002Fprojects\u002Fsanaapp\u002F3.webp",{"type":130,"src":349},"\u002Fimages\u002Fprojects\u002Fsanaapp\u002F4.webp",{"type":130,"src":351},"\u002Fimages\u002Fprojects\u002Fsanaapp\u002F5.webp",{"type":130,"src":353},"\u002Fimages\u002Fprojects\u002Fsanaapp\u002F6.webp",{"type":130,"src":355},"\u002Fimages\u002Fprojects\u002Fsanaapp\u002F7.webp",{"type":130,"src":338},{},"\u002Fen\u002Fprojects\u002Fsana-app","Web App","Frontend Developer of the system (and part of the backend), UI\u002FUX Designer",{"title":232,"description":333},"en\u002Fprojects\u002Fsana-app",[364,365,366,367,368,369,370,371,372],"Web Application","Comprehensive Organization Management System","ERP System","Production Management","Warehouse Management","Office Automation","User and Access Management","Quality Control and Production Tracking","and more","https:\u002F\u002Fapp.sanaerp.ir\u002F","1405","MqOOYYoC3I36fg5F33cH7eozbQL4jEc6dCdjKohNnnQ",{"id":377,"title":378,"body":379,"client":378,"date":425,"description":426,"details":427,"duration":430,"extension":123,"image":431,"media":432,"meta":458,"navigation":148,"path":459,"platform":460,"role":461,"seo":462,"stem":463,"tags":464,"url":469,"year":470,"__hash__":471},"projects\u002Fen\u002Fprojects\u002Fvira-sanaat.md","Vira Sanaat",{"type":36,"value":380,"toc":420},[381,383,386,389,392,394,397,400,403,405,408,411,414,417],[39,382,42],{"id":41},[44,384,385],{},"This web application was built for testing different types of modern refrigerator control boards, including boards used in home refrigerators.",[44,387,388],{},"The device and controller designed by Microtech Shomal send live data to the server, and the application reads that data from the server and monitors it in real time. It also allows users to configure the device and provides features such as second-by-second logging with a high level of customization.",[44,390,391],{},"The project is a web application, and since it is built as a PWA, it can be installed on most operating systems.",[39,393,53],{"id":52},[44,395,396],{},"Each device has its own unique ID. By entering that ID in the system, the user can connect to the device and monitor its data live, configure settings and data, record logs in real time, and analyze the information through different charts and list views.",[44,398,399],{},"Logging plays an important role in the system. Users have a high level of control over how data is logged and can define different events based on timing and logging conditions.",[44,401,402],{},"The system also supports a fully customizable screen layout with widgets inspired by the iPhone interface, a bilingual interface, and user management with different roles.",[39,404,98],{"id":97},[44,406,407],{},"The main challenge for me in this web application was making the data display as fast and live as possible.",[44,409,410],{},"The system and backend had to be designed to process thousands of data points simultaneously and display them in real time.",[44,412,413],{},"To handle this, I used SignalR.",[44,415,416],{},"Another challenge was handling logs and generating reports for every incoming value. Each piece of data could be recorded with different time-based and behavioral conditions, and at a larger scale, this could put significant pressure on the server.",[44,418,419],{},"By using techniques such as averaging between data points and analyzing time-based peaks depending on the data volume, I managed to reduce the server load by up to 30%, which resulted in a noticeable improvement in the application's overall speed.",{"title":109,"searchDepth":110,"depth":110,"links":421},[422,423,424],{"id":41,"depth":110,"text":42},{"id":52,"depth":110,"text":53},{"id":97,"depth":110,"text":98},"2026-04-01","A private web application that connects to devices designed by Rayan Algorithm and modern refrigerator control boards to monitor live data, configure devices, generate reports, and analyze data through detailed charts and filtered lists.",[428],{"label":120,"value":429},"Reading live data from the device to the server, displaying it in real time, applying configurations, and providing accurate second-by-second reporting","4 weeks","\u002Fimages\u002Fprojects\u002Fvirasanaat\u002F1.webp",[433,434,436,438,440,442,444,446,448,450,452,454,456],{"type":130,"src":431},{"type":130,"src":435},"\u002Fimages\u002Fprojects\u002Fvirasanaat\u002F2.webp",{"type":130,"src":437},"\u002Fimages\u002Fprojects\u002Fvirasanaat\u002F3.webp",{"type":130,"src":439},"\u002Fimages\u002Fprojects\u002Fvirasanaat\u002F4.webp",{"type":130,"src":441},"\u002Fimages\u002Fprojects\u002Fvirasanaat\u002F5.webp",{"type":130,"src":443},"\u002Fimages\u002Fprojects\u002Fvirasanaat\u002F6.webp",{"type":130,"src":445},"\u002Fimages\u002Fprojects\u002Fvirasanaat\u002F7.webp",{"type":130,"src":447},"\u002Fimages\u002Fprojects\u002Fvirasanaat\u002F8.webp",{"type":130,"src":449},"\u002Fimages\u002Fprojects\u002Fvirasanaat\u002F9.webp",{"type":130,"src":451},"\u002Fimages\u002Fprojects\u002Fvirasanaat\u002F10.webp",{"type":130,"src":453},"\u002Fimages\u002Fprojects\u002Fvirasanaat\u002F11.webp",{"type":130,"src":455},"\u002Fimages\u002Fprojects\u002Fvirasanaat\u002F12.webp",{"type":130,"src":457},"\u002Fimages\u002Fprojects\u002Fvirasanaat\u002F13.webp",{},"\u002Fen\u002Fprojects\u002Fvira-sanaat","Web application","Full-stack software developer (Frontend & Backend), UI\u002FUX Designer",{"title":378,"description":426},"en\u002Fprojects\u002Fvira-sanaat",[364,465,466,467,468],"User Management","Monitoring","Industrial","Reporting","working","2025","yzYRLzFDo8-9bauEdJ1VKOcNZoyqUcnhXb6PFkWAZC4",{"id":473,"title":474,"body":475,"client":488,"date":489,"description":490,"details":491,"duration":495,"extension":123,"image":496,"media":497,"meta":509,"navigation":148,"path":510,"platform":511,"role":512,"seo":513,"stem":514,"tags":515,"url":469,"year":161,"__hash__":519},"projects\u002Fen\u002Fprojects\u002Fautomate.md","Automate",{"type":36,"value":476,"toc":485},[477,479,482],[39,478,42],{"id":41},[44,480,481],{},"Automate is a mobile software application that provides TPMS functionality to users and automotive technicians through a simple and modern interface.",[44,483,484],{},"The main focus of this software is to eliminate the need for users to learn how to use the application before getting started. The goal is to remove this initial learning curve and allow users to reach what they need as quickly as possible. This is one of the key advantages of Automate over older software solutions in this field, which often require users to undergo training and learn how to operate the software before they can use it effectively.",{"title":109,"searchDepth":110,"depth":110,"links":486},[487],{"id":41,"depth":110,"text":42},"Microtech Shomal","2026-02-01","Automate is a software application for (Tire Pressure Monitoring System) TPMS that receives and decodes RF frames from sensors. Each vehicle tire can be monitored and reported separately, with the data presented in a graphical and user-friendly interface.",[492,493],{"label":120},{"value":494},"A new generation of automotive engineering software designed with a user-friendly interface and ease of use.","In development","\u002Fimages\u002Fprojects\u002Ftpms\u002F1.webp",[498,499,501,503,505,507],{"type":130,"src":496},{"type":130,"src":500},"\u002Fimages\u002Fprojects\u002Ftpms\u002F2.webp",{"type":130,"src":502},"\u002Fimages\u002Fprojects\u002Ftpms\u002F3.webp",{"type":130,"src":504},"\u002Fimages\u002Fprojects\u002Ftpms\u002F4.webp",{"type":130,"src":506},"\u002Fimages\u002Fprojects\u002Ftpms\u002F5.webp",{"type":130,"src":508},"\u002Fimages\u002Fprojects\u002Ftpms\u002F6.webp",{},"\u002Fen\u002Fprojects\u002Fautomate","Android, iOS","Front-end Developer, UI\u002FUX Designer",{"title":474,"description":490},"en\u002Fprojects\u002Fautomate",[516,465,466,517,518],"Mobile","Industrial Tester","Automotive","OD8SK-MA4NhgCksh2LIUbgEMLHipHF5Ytk5J8esZMZ0",{"id":521,"title":522,"body":523,"client":539,"date":540,"description":541,"details":542,"duration":545,"extension":123,"image":546,"media":547,"meta":563,"navigation":148,"path":564,"platform":359,"role":565,"seo":566,"stem":567,"tags":568,"url":576,"year":470,"__hash__":577},"projects\u002Fen\u002Fprojects\u002Fdaily-hub.md","DailyHub",{"type":36,"value":524,"toc":535},[525,527,530,532],[39,526,42],{"id":41},[44,528,529],{},"all the daily information you'd otherwise need to check different sites and apps for, gathered in one place.\nDailyHub started as a simple project working with different APIs for university, which I continued developing and now mostly use myself to access the information I need faster.",[39,531,53],{"id":52},[44,533,534],{},"The project uses a range of different APIs to show users the information they need for each section.\nThe architecture is clean and modular — each section you see on the site is a separate module. This was also a way for me to practice controlling each module independently, so that in bigger future projects I can implement modular architecture properly and in the most optimized way possible, making it easy to switch to a microservices architecture if a project's scalability needs and user base grow.",{"title":109,"searchDepth":110,"depth":110,"links":536},[537,538],{"id":41,"depth":110,"text":42},{"id":52,"depth":110,"text":53},"University project","2025-11-03","A university project working with various APIs (originally built for a course project) that I continued developing into a personal project",[543],{"label":120,"value":544},"Everyday information that everyone needs in their life, all gathered and presented in one place.","3 weeks","\u002Fimages\u002Fprojects\u002Fdailyhub\u002F3.webp",[548,550,552,553,555,557,559,561],{"type":127,"src":549},"\u002Fimages\u002Fprojects\u002Fdailyhub\u002F1v.webm",{"type":130,"src":551},"\u002Fimages\u002Fprojects\u002Fdailyhub\u002F2.webp",{"type":130,"src":546},{"type":130,"src":554},"\u002Fimages\u002Fprojects\u002Fdailyhub\u002F4.webp",{"type":130,"src":556},"\u002Fimages\u002Fprojects\u002Fdailyhub\u002F5.webp",{"type":130,"src":558},"\u002Fimages\u002Fprojects\u002Fdailyhub\u002F6.webp",{"type":130,"src":560},"\u002Fimages\u002Fprojects\u002Fdailyhub\u002F7.webp",{"type":130,"src":562},"\u002Fimages\u002Fprojects\u002Fdailyhub\u002F8.webp",{},"\u002Fen\u002Fprojects\u002Fdaily-hub","Full-stack developer (frontend & backend), UI\u002FUX designer",{"title":522,"description":541},"en\u002Fprojects\u002Fdaily-hub",[364,569,570,571,572,573,574,575],"Crypto","AI","Gold & Metal Prices","USD, EUR & Other Currency Rates","Real-time Data","News","Weather","https:\u002F\u002Fdaiilyhub.ir\u002F","oBxeDtux4rkvul4_iZxL4gqyCER7uo6Z7G5XY6-CnB8",{"id":579,"title":580,"body":581,"client":580,"date":632,"description":633,"details":634,"duration":122,"extension":123,"image":637,"media":638,"meta":650,"navigation":148,"path":651,"platform":359,"role":565,"seo":652,"stem":653,"tags":654,"url":655,"year":656,"__hash__":657},"projects\u002Fen\u002Fprojects\u002Fkariz-lab.md","KarizLab",{"type":36,"value":582,"toc":627},[583,585,588,590,593,596,598,601,604,624],[39,584,42],{"id":41},[44,586,587],{},"KarizLab is a complete system for managing laboratory branches across the country, rating and managing suppliers, ordering products, and fully tracking orders from suppliers. It also includes a warehouse and product management section.",[39,589,53],{"id":52},[44,591,592],{},"The system supports different subscription tiers (as requested by the client) with a high degree of customization, which can be created and sold to different laboratories.\nAfter purchasing a subscription, each lab gets access to features based on its tier. Suppliers are also defined in the system, with the ability to advertise and get boosted (climb the ranking in the supplier list). Labs can evaluate suppliers according to the protocol built into the system. Lab products can be added to lab inventory, along with incoming and outgoing transfer notes.",[44,594,595],{},"The entire process — from placing an order to receiving it, and even evaluating shipped or returned products — happens within the site itself. The system also includes various SMS notifications, along with an advertising system.",[39,597,98],{"id":97},[44,599,600],{},"The main challenge in projects of this scale is closing security gaps, optimization, speed, and scalability — which I personally found interesting.",[44,602,603],{},"For that reason, I took server-side access control seriously and didn't rely solely on frontend checks; since client-side checks can be bypassed, every request that reaches the server passes again through authentication and authorization filters. In addition:",[61,605,606,609,612,615,618,621],{},[64,607,608],{},"Input validation to prevent attacks like SQL Injection and XSS",[64,610,611],{},"Rate limiting on sensitive routes to prevent brute-force attacks",[64,613,614],{},"Using HTTPS and encrypting sensitive data (both in transit and at rest)",[64,616,617],{},"CORS control to block unauthorized access from unknown domains",[64,619,620],{},"CSRF tokens to prevent forged requests",[64,622,623],{},"Logging and monitoring suspicious activity for faster detection of intrusion attempts",[44,625,626],{},"All of these were implemented and enforced on the site.",{"title":109,"searchDepth":110,"depth":110,"links":628},[629,630,631],{"id":41,"depth":110,"text":42},{"id":52,"depth":110,"text":53},{"id":97,"depth":110,"text":98},"2024-04-14","KarizLab is a private platform for managing multiple laboratory branches across the country, along with lab suppliers and their evaluation, order and invoice registration, various transfer notes, and warehouse inventory, among other things.",[635],{"label":120,"value":636},"The complete management cycle for laboratory branches, suppliers, customers, products, and administration — all in one unified KarizLab system.","\u002Fimages\u002Fprojects\u002FKarizlab\u002F2.webp",[639,641,642,644,646,648],{"type":127,"src":640},"\u002Fimages\u002Fprojects\u002FKarizlab\u002F1v.webm",{"type":130,"src":637},{"type":130,"src":643},"\u002Fimages\u002Fprojects\u002FKarizlab\u002F3.webp",{"type":130,"src":645},"\u002Fimages\u002Fprojects\u002FKarizlab\u002F4.webp",{"type":130,"src":647},"\u002Fimages\u002Fprojects\u002FKarizlab\u002F5.webp",{"type":130,"src":649},"\u002Fimages\u002Fprojects\u002FKarizlab\u002F6.webp",{},"\u002Fen\u002Fprojects\u002Fkariz-lab",{"title":580,"description":633},"en\u002Fprojects\u002Fkariz-lab",[364,465,466,467,468],"private","2024","rIBxj1jHRMTbXz48LjhJT7D8ly3G4igEiA9fwQFJZ4Q",{"id":659,"title":660,"body":661,"client":695,"date":696,"description":697,"details":698,"duration":701,"extension":123,"image":702,"media":703,"meta":737,"navigation":148,"path":738,"platform":359,"role":739,"seo":740,"stem":741,"tags":742,"url":748,"year":749,"__hash__":750},"projects\u002Fen\u002Fprojects\u002Fschool.md","Poyandegan Platform",{"type":36,"value":662,"toc":690},[663,665,668,670,673,676,679,681,684,687],[39,664,42],{"id":41},[44,666,667],{},"This is a complete, all-in-one platform built for schools at any grade level. Grounded in principles of behavioral psychology and modern UI\u002FUX design, it delivers a contemporary user experience intended to replace outdated legacy school systems.",[39,669,53],{"id":52},[44,671,672],{},"This platform is a comprehensive education and school management system that brings together every stakeholder in a school — students, teachers, counselors, deputies, and other administrative staff, as well as parents — into a single, unified environment, managing and controlling each according to their role.",[44,674,675],{},"Each user accesses the sections relevant to their role, from weekly class schedules and the academic calendar to online exam creation, grade entry, and report card generation. The school's financial operations are also fully integrated into the system, enabling tuition management, payment tracking, and financial reporting.",[44,677,678],{},"The interface was designed around principles of user-experience psychology, making the system simple and enjoyable to use across all age groups and skill levels — an approach positioned as a modern replacement for schools' traditional, outdated systems.",[39,680,98],{"id":97},[44,682,683],{},"The biggest challenge in this project was designing and building three fully distinct panels — an administration\u002Fstaff panel, a teacher panel, and a student\u002Fparent panel — and integrating them into a single, unified system, ensuring all data stayed correctly and seamlessly synchronized across the three without conflicts.",[44,685,686],{},"Another major challenge was optimizing performance given the high volume of data involved (grades, attendance, financial transactions, and academic reports). By restructuring the database efficiently, implementing smart request caching, and reducing server response payloads, I was able to significantly cut down page load times.",[44,688,689],{},"Security was also a top priority throughout the project, given the sensitivity of student and staff data. Role-based access control was implemented across the system, along with multi-layered authentication and request validation mechanisms, to prevent unauthorized access to sensitive data.",{"title":109,"searchDepth":110,"depth":110,"links":691},[692,693,694],{"id":41,"depth":110,"text":42},{"id":52,"depth":110,"text":53},{"id":97,"depth":110,"text":98},"Poyandegan School","2024-01-21","A comprehensive, unified school management platform for students, parents, teachers, and all administrative staff.",[699],{"label":120,"value":700},"Unifying the entire education, assessment, financial, staff (deputies, counselors, support staff), and student management system into a single platform","Less than 3 months","\u002Fimages\u002Fprojects\u002Fschool\u002F12.webp",[704,706,708,710,712,714,716,718,720,722,724,725,727,729,731,733,735],{"type":127,"src":705},"\u002Fimages\u002Fprojects\u002Fschool\u002F1v.webm",{"type":130,"src":707},"\u002Fimages\u002Fprojects\u002Fschool\u002F1.webp",{"type":130,"src":709},"\u002Fimages\u002Fprojects\u002Fschool\u002F4.webp",{"type":130,"src":711},"\u002Fimages\u002Fprojects\u002Fschool\u002F5.webp",{"type":130,"src":713},"\u002Fimages\u002Fprojects\u002Fschool\u002F6.webp",{"type":130,"src":715},"\u002Fimages\u002Fprojects\u002Fschool\u002F7.webp",{"type":130,"src":717},"\u002Fimages\u002Fprojects\u002Fschool\u002F8.webp",{"type":130,"src":719},"\u002Fimages\u002Fprojects\u002Fschool\u002F9.webp",{"type":130,"src":721},"\u002Fimages\u002Fprojects\u002Fschool\u002F10.webp",{"type":130,"src":723},"\u002Fimages\u002Fprojects\u002Fschool\u002F11.webp",{"type":130,"src":702},{"type":130,"src":726},"\u002Fimages\u002Fprojects\u002Fschool\u002F13.webp",{"type":130,"src":728},"\u002Fimages\u002Fprojects\u002Fschool\u002F14.webp",{"type":130,"src":730},"\u002Fimages\u002Fprojects\u002Fschool\u002F15.webp",{"type":130,"src":732},"\u002Fimages\u002Fprojects\u002Fschool\u002F16.webp",{"type":130,"src":734},"\u002Fimages\u002Fprojects\u002Fschool\u002F2.webp",{"type":130,"src":736},"\u002Fimages\u002Fprojects\u002Fschool\u002F3.webp",{},"\u002Fen\u002Fprojects\u002Fschool","Front-end Developer (partial back-end), UI\u002FUX Designer",{"title":660,"description":697},"en\u002Fprojects\u002Fschool",[364,743,744,745,746,747,372],"Unified Education System","Online Exam Creation & Management","Financial Management","Teacher, Staff, Student & Parent Management","Academic Progress Reporting","https:\u002F\u002Fpuyandegan.org\u002F","2023","-zlLSpqEphLIPgVSWBIO_h0DpXjIBgZPqjMUHA9qSKY",{"id":752,"title":753,"body":754,"client":785,"date":786,"description":787,"details":788,"duration":791,"extension":123,"image":792,"media":793,"meta":803,"navigation":148,"path":804,"platform":805,"role":806,"seo":807,"stem":808,"tags":809,"url":655,"year":812,"__hash__":813},"projects\u002Fen\u002Fprojects\u002Ffan-driver-tester.md","Fan Driver Tester",{"type":36,"value":755,"toc":780},[756,758,761,764,766,769,772,774,777],[39,757],{"id":109},[44,759,760],{},"This project holds a special place for me because it was the first project I was officially entrusted with. As my first professional project, it came with many challenges and learning experiences. Although I went on to work on a considerable number of tester projects afterward, I have never forgotten where it all started. Your first project always stays with you.",[44,762,763],{},"A private project developed for the mentioned company, enabling the component testing process through dedicated software. The software features monitoring, testing, and reporting capabilities both within the application and through Excel exports. It also includes user management with different access levels, as well as device configuration and setup.",[39,765,53],{"id":52},[44,767,768],{},"A step-by-step workflow was designed around device status, measurements, and pass\u002Ffail feedback, with a complete test report generated automatically after each test. The software was optimized for extended periods of continuous operation.",[44,770,771],{},"The UI\u002FUX design was also entirely handled by me, with a focus on making the software simple and easy to use for operators. The color contrast was carefully designed to reduce eye strain during long working hours.",[39,773,98],{"id":97},[44,775,776],{},"In tester projects, especially FDT, one of the biggest challenges is eliminating hardware noise and ensuring reliable synchronization between the device and the software. After extensive testing across different scenarios, the final result achieved 100% reliable and error-free data reading and writing on the device.",[44,778,779],{},"Personally, I found working directly with the device and troubleshooting the challenges caused by hardware errors or the device's microcontroller particularly engaging and rewarding. It was one of the most interesting and challenging parts of the project.",{"title":109,"searchDepth":110,"depth":110,"links":781},[782,783,784],{"id":109,"depth":110,"text":109},{"id":52,"depth":110,"text":53},{"id":97,"depth":110,"text":98},"AMA Tech","2021-11-10","A testing interface for validating fan driver performance, recording measurements, and reporting production line results.",[789],{"label":120,"value":790},"Testing and measuring data from each module with over 95% accuracy","6 weeks","\u002Fimages\u002Fprojects\u002Ffandrivertester\u002Fp3.webp",[794,795,797,799,801],{"type":130,"src":792},{"type":127,"src":796},"\u002Fimages\u002Fprojects\u002Ffandrivertester\u002Fv1.webm",{"type":127,"src":798},"\u002Fimages\u002Fprojects\u002Ffandrivertester\u002Fv2.webm",{"type":130,"src":800},"\u002Fimages\u002Fprojects\u002Ffandrivertester\u002Fp1.webp",{"type":130,"src":802},"\u002Fimages\u002Fprojects\u002Ffandrivertester\u002Fp2.webp",{},"\u002Fen\u002Fprojects\u002Ffan-driver-tester","Windows","Full-stack Software Developer (Frontend & Backend), UI\u002FUX Designer",{"title":753,"description":787},"en\u002Fprojects\u002Ffan-driver-tester",[810,466,811,467,468],"Windows Software","Tester","2021","3fJ5FG7ThEKIoSFIbPmfcyW1_IAmPbts_OpYO0Cm2N8",1790420199778]