{"id":18353092,"url":"https://github.com/thecodeholic/deno-survey","last_synced_at":"2025-10-07T13:40:06.373Z","repository":{"id":92723296,"uuid":"268705720","full_name":"thecodeholic/deno-survey","owner":"thecodeholic","description":"Survey Application made with Deno","archived":false,"fork":false,"pushed_at":"2020-06-30T23:03:06.000Z","size":54,"stargazers_count":21,"open_issues_count":1,"forks_count":15,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-21T22:41:30.293Z","etag":null,"topics":["deno","deno-app","deno-rest-api","deno-survey","denoland"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/thecodeholic.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}},"created_at":"2020-06-02T05:05:05.000Z","updated_at":"2023-12-26T06:59:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"6e826e81-f6b3-4f3f-9397-6e4762e10ea8","html_url":"https://github.com/thecodeholic/deno-survey","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecodeholic%2Fdeno-survey","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecodeholic%2Fdeno-survey/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecodeholic%2Fdeno-survey/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecodeholic%2Fdeno-survey/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thecodeholic","download_url":"https://codeload.github.com/thecodeholic/deno-survey/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247478152,"owners_count":20945258,"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","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":["deno","deno-app","deno-rest-api","deno-survey","denoland"],"created_at":"2024-11-05T21:38:28.083Z","updated_at":"2025-10-07T13:40:01.324Z","avatar_url":"https://github.com/thecodeholic.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Deno Survey App\nSurvey application with REST API to manage surveys and questions and website, where all surveys are outputted.\n\n## Installation\n\nYou need to have [deno installed](https://deno.land/#installation) in order to run this application.\u003cbr\u003e\nInstall also [denon](https://deno.land/x/denon) which watches your file changes and automatically restarts server.\n\n1. Clone the repository\n1. Go to the project root folder\n1. Copy `.env.example` into `.env` file and adjust the values\n\n    ```dotenv\n    # MongoDB connect URI\n    MONGODB_URI = mongodb://localhost:27017\n    # MondoDB database name\n    DB_NAME = deno_survey\n    # JWT encryption/decription secret key\n    JWT_SECRET_KEY = some-random-key\n    # JWT expiration duration\n    JWT_EXP_DURATION = 3600000\n    ```\n1. Run the application by executing\n\n    ```dotenv\n    denon run --allow-net --allow-write --allow-read --allow-env --allow-plugin --unstable server.ts\n    ```\n    \n## Usage\n\nIn REST API the following endpoints are supported.\n\n\u003ctable\u003e\n    \u003cthead\u003e\n    \u003ctr\u003e\n        \u003cth\u003eMETHOD\u003c/th\u003e\n        \u003cth\u003eURL\u003c/th\u003e\n        \u003cth\u003eDescription\u003c/th\u003e\n        \u003cth\u003eRequest\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ePOST\u003c/td\u003e\n        \u003ctd\u003e/api/register\u003c/td\u003e\n        \u003ctd\u003eRegister\u003c/td\u003e\n        \u003ctd\u003e\n            \u003cpre\u003e\njson\n{\n  \"name\": \"test\",\n  \"email\": \"test@example.com\",\n  \"password\": \"test\"\n}\n            \u003c/pre\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ePOST\u003c/td\u003e\n        \u003ctd\u003e/api/login\u003c/td\u003e\n        \u003ctd\u003eLogin\u003c/td\u003e\n        \u003ctd\u003e\n            \u003cpre\u003e\njson\n{\n  \"email\": \"test@example.com\",\n  \"password\": \"test\"\n}\n            \u003c/pre\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eGET\u003c/td\u003e\n        \u003ctd\u003e/api/survey\u003c/td\u003e\n        \u003ctd\u003eGet surveys for authentication user\u003c/td\u003e\n        \u003ctd\u003e(Empty)\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eGET\u003c/td\u003e\n        \u003ctd\u003e/api/survey/:id\u003c/td\u003e\n        \u003ctd\u003eGet single survey\u003c/td\u003e\n        \u003ctd\u003e(Empty)\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ePOST\u003c/td\u003e\n        \u003ctd\u003e/api/survey\u003c/td\u003e\n        \u003ctd\u003eCreate survey\u003c/td\u003e\n        \u003ctd\u003e\n            \u003cpre\u003e\n{\n  \"name\": \"Survey name\",\n  \"description\": \"Survey description\"\n}\n            \u003c/pre\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ePUT\u003c/td\u003e\n        \u003ctd\u003e/api/survey/:id\u003c/td\u003e\n        \u003ctd\u003eUpdate survey\u003c/td\u003e\n        \u003ctd\u003e\n\u003cpre lang=\"json\"\u003e{\n  \"name\": \"Survey name\",\n  \"description\": \"Survey description\"\n}\u003c/pre\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eDELETE\u003c/td\u003e\n        \u003ctd\u003e/api/survey/:id\u003c/td\u003e\n        \u003ctd\u003eDelete survey\u003c/td\u003e\n        \u003ctd\u003e(Empty)\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eGET\u003c/td\u003e\n        \u003ctd\u003e/api/survey/:surveyId/question\u003c/td\u003e\n        \u003ctd\u003eGet questions for survey\u003c/td\u003e\n        \u003ctd\u003e(Empty)\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eGET\u003c/td\u003e\n        \u003ctd\u003e/api/question/:id\u003c/td\u003e\n        \u003ctd\u003eGet single question\u003c/td\u003e\n        \u003ctd\u003e(Empty)\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ePOST\u003c/td\u003e\n        \u003ctd\u003e/api/question/:surveyId\u003c/td\u003e\n        \u003ctd\u003eCreate question for survey\u003c/td\u003e\n        \u003ctd\u003e\n\u003cpre lang=\"json\"\u003eSingle choice question\n{\n  \"text\": \"How much you liked the Deno Course?\",\n  \"type\": \"choice\",\n  \"required\": true,\n  \"data\": {\n    \"multiple\": false,\n    \"answers\": [\n      \"I liked it very much\",\n      \"I liked it\",\n      \"I did not like it\",\n      \"I hate it\"\n    ]\n  }\n}\nMultiple choice question\n{\n  \"text\": \"Which features do you like in Deno?\",\n  \"type\": \"choice\",\n  \"required\": true,\n  \"data\": {\n    \"multiple\": true,\n    \"answers\": [\n      \"Typescript\",\n      \"Security\",\n      \"Import from URL\",\n      \"ES6 modules\"\n    ]\n  }\n}\nFree text question\n{\n  \"text\": \"Any other comments?\",\n  \"type\": \"text\",\n  \"required\": false\n}\u003c/pre\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ePUT\u003c/td\u003e\n        \u003ctd\u003e/api/question/:id\u003c/td\u003e\n        \u003ctd\u003eUpdate question\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eDELETE\u003c/td\u003e\n        \u003ctd\u003e/api/question/:id\u003c/td\u003e\n        \u003ctd\u003eDelete question\u003c/td\u003e\n        \u003ctd\u003e(Empty)\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthecodeholic%2Fdeno-survey","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthecodeholic%2Fdeno-survey","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthecodeholic%2Fdeno-survey/lists"}