diff --git a/README.md b/README.md index fa7faab..d1604d0 100644 --- a/README.md +++ b/README.md @@ -1,46 +1,73 @@ # WebComponents -Technical Specification: Native Profile Form Editor +Native full-stack demo app "Profile editor" built with plain Node.js, browser ES modules, Web Components, Shadow DOM, templates, and shared domain logic. -## 1. Goal +Technical specification and reference for a small application that browses, searches, creates, edits, and deletes professional profiles. The application demonstrates a frontend without frameworks, bundlers, client-side template fetching, or duplicated business rules. -Develop a small full-stack application for browsing, searching, creating, editing and deleting user profiles. +The main idea is to keep application behavior in a shared domain module and run the same rules on both sides. The application is not a simple CRUD form. -The application must load profile data from: +It supports: -```text -GET http://127.0.0.1/profile/{username} +- profile directory +- profile search +- profile creation +- profile editing +- profile deletion +- client-side validation +- server-side validation +- computed profile fields +- shared domain logic for browser and server + +## Design constraints + +- The project avoids direct fetch calls from components +- Use only native APIs +- Do not use runtime npm dependencies +- Use plain Node.js on the server +- Use browser ES modules on the client +- Use Web Components, Template API, and Navigation API on the client +- Use `