task-paf-technical-trainee

CRUD with admin panel. Deno + Hono + Eta + Vue3 based. OAuth2 authentication for Google and X/Twitter. Deno KV database. Zod validation.

Stars
0
Committers
2

task-paf-technical-trainee

Full-stack Web Application

Demo

Double login (Google, X/Twitter) + manage collected data using the admin panel.

Description

Frontend technology stack:

  • JavaScript(Vue3) self-hosted script vue.esm-browser.prod.js used to improve UI/UX experience.

Backend technology stack:

GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=

TWITTER_CLIENT_ID=
TWITTER_CLIENT_SECRET=

GOOGLE_OAUTH_CONFIG_REDIRECT_URI=http://localhost:8000/callback-google
X_OAUTH_CONFIG_REDIRECT_URI=http://localhost:8000/callback-x

ADMIN_IDS=idfromappscreen,anotheradmin,commaseparated
CSRF_ORIGIN=http://localhost:8000
  • for deno deploy, the CSRF_ORIGIN and the *_CONFIG_REDIRECT_URI prefix http://localhost:8000 should be replaced to used domain.
  • to get *_CLENT_ID and *_CLIENT_SECRET first configure OAuth2 for Google and X/Twitter accounts where you registered.
  • at the moment (2024) the solutions used have free plans.
  • ADMIN_IDS displayed in profile after login, and provided by OAuth2 API. So, first login without admin rights, then get id, finally add id into .env or deploy environment variable.

Requirements

  • configured Deno.
  • correct .env file(otherwise OAuth2 will fail).

Developed on linux.

Usage

  • clone the repo
  • create and fill .env file in repo root folder(README.md file level).
  • terminal: deno task bang to run locally.

For details discover the deno.json file.