{"id":30743210,"url":"https://github.com/arjun-ms/easyforms","last_synced_at":"2025-09-04T02:05:21.677Z","repository":{"id":305167341,"uuid":"1019201859","full_name":"arjun-ms/EasyForms","owner":"arjun-ms","description":"Create. Customize. Collect.","archived":false,"fork":false,"pushed_at":"2025-07-14T17:04:59.000Z","size":106,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-29T11:56:12.232Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arjun-ms.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-14T00:41:54.000Z","updated_at":"2025-07-14T17:05:02.000Z","dependencies_parsed_at":"2025-07-18T18:57:14.495Z","dependency_job_id":null,"html_url":"https://github.com/arjun-ms/EasyForms","commit_stats":null,"previous_names":["arjun-ms/easyforms"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/arjun-ms/EasyForms","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arjun-ms%2FEasyForms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arjun-ms%2FEasyForms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arjun-ms%2FEasyForms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arjun-ms%2FEasyForms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arjun-ms","download_url":"https://codeload.github.com/arjun-ms/EasyForms/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arjun-ms%2FEasyForms/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273539317,"owners_count":25123499,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-04T02:00:08.968Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-09-04T02:05:20.696Z","updated_at":"2025-09-04T02:05:21.669Z","avatar_url":"https://github.com/arjun-ms.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📝 EasyForms\n\nA lightweight form management system built using **FastAPI** (backend) and **HTML/CSS/JS** (frontend) that enables:\n\n- Admins to create, update, assign, and analyze dynamic forms\n- Users to view assigned forms, submit responses, and track submissions\n\n---\n\n## Demo\n\n[Visit the site from here](https://easyforms.onrender.com)\n\n## 🚀 Features\n\n### 🔐 Authentication \u0026 Authorization\n- JWT-based login and refresh token system\n- Role-based access control (`admin` / `user`)\n- Secure password hashing\n\n### 📄 Form Management (Admin)\n- Create, update, delete dynamic forms\n- Assign forms to users\n- View all forms and their assigned users\n\n### 🧑‍💼 User Experience\n- View forms assigned to them\n- Dynamically render input fields from JSON schema\n- Submit responses with validation\n- View submission history\n\n### 📊 Analytics (Admin)\n- View all submissions for a specific form\n\n---\n\n## 🧱 Tech Stack\n\n| Layer       | Tech                   |\n|-------------|------------------------|\n| Backend     | FastAPI, SQLAlchemy    |\n| Frontend    | HTML, CSS, JS          |\n| Database    | PostgreSQL             |\n| Auth        | JWT (access + refresh) |\n| Schema      | Pydantic               |\n\n---\n\n## 🛠️ Setup Instructions\n\n### 1. Clone \u0026 Install\n```bash\ngit clone https://github.com/arjun-ms/EasyForms.git\ncd EasyForms\npip install -r requirements.txt\n```\n\n### 2. Set Environment Variables\nCreate a `.env` file or set manually:\n```env\nDB_USER=username\nDB_PASSWORD=password\nDB_HOST=localhost\nDB_PORT=1234\nDB_NAME=db_name\nSECRET_KEY=your_secret_key_here\nALGORITHM=HS256\nACCESS_TOKEN_EXPIRE_MINUTES=120\nRENDER_DB_URL=your_hosted_db_url\nAPI_BASE_URL=your_hosted_link\n```\n\n### 3. Run the Server\n```bash\nuvicorn backend.main:app --reload\n```\n\n### 4. Access the App\n- Backend: `http://127.0.0.1:8000`\n- Swagger UI: `http://127.0.0.1:8000/docs`\n- Frontend: Open `index.html`, `user-dashboard.html`, etc., in a browser\n\n---\n\n## API Docs\n\n\u003e 👉 Refer to the [API.md](./API.md) file for complete endpoint details.\n\n## 📌 Project Progress\n\n### ✅ Core Functionalities\n\n- [x] Auth (register, login, refresh)\n- [x] Admin Form Management\n- [x] Form assignment \u0026 retrieval\n- [x] User form submission\n- [x] Submission history\n- [x] Basic analytics (submissions per form)\n\n## ✅ Success Criteria\n\n- [x] Admin can manage and assign forms easily\n- [x] Role-based access is enforced\n- [x] Forms render dynamically using schema\n- [x] Submissions are tracked per user\n- [x] Clean code structure\n\n---\n\n## 📌 Contributors\n\n- **Arjun M S** – Developer\n  [SnapCV](https://arjun-ms.snapcv.me/)\n\n---\n\n## 📜 License\n\nMIT License – use freely, credit appreciated.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farjun-ms%2Feasyforms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farjun-ms%2Feasyforms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farjun-ms%2Feasyforms/lists"}