{"id":26828354,"url":"https://github.com/tfd-ed/tfd-blog","last_synced_at":"2025-04-30T03:49:33.331Z","repository":{"id":37957733,"uuid":"472689821","full_name":"tfd-ed/tfd-blog","owner":"tfd-ed","description":"Multi-languages Blog with E-learning feature powered by nuxt-content and TailwindCss","archived":false,"fork":false,"pushed_at":"2024-10-06T06:00:54.000Z","size":9419,"stargazers_count":27,"open_issues_count":3,"forks_count":20,"subscribers_count":3,"default_branch":"develop","last_synced_at":"2025-04-30T03:49:27.962Z","etag":null,"topics":["blog","devops","e-learning","fullstack","geetest","geetest-captcha","nuxtjs","tech"],"latest_commit_sha":null,"homepage":"https://tfdevs.com","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tfd-ed.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2022-03-22T09:12:04.000Z","updated_at":"2024-11-06T06:10:55.000Z","dependencies_parsed_at":"2024-08-23T17:54:46.548Z","dependency_job_id":"36ec8866-41e3-4544-9253-89c5d850dcdf","html_url":"https://github.com/tfd-ed/tfd-blog","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tfd-ed%2Ftfd-blog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tfd-ed%2Ftfd-blog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tfd-ed%2Ftfd-blog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tfd-ed%2Ftfd-blog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tfd-ed","download_url":"https://codeload.github.com/tfd-ed/tfd-blog/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251638760,"owners_count":21619663,"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":["blog","devops","e-learning","fullstack","geetest","geetest-captcha","nuxtjs","tech"],"created_at":"2025-03-30T12:30:26.957Z","updated_at":"2025-04-30T03:49:33.308Z","avatar_url":"https://github.com/tfd-ed.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1\u003eTFD E-Learning using Nuxt/Content  + TailwindCSS\n  \u003ca  \n    href=\"https://nestjs.com/\"  \n    target=\"blank\"  \n  \u003e\u003c/a\u003e\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e  \n\u003cimg src=\"https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge\u0026logo=docker\u0026logoColor=white\" width=\"75\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/node.js-%2343853D.svg?style=for-the-badge\u0026logo=node.js\u0026logoColor=white\" width=\"80\"\u003e  \n\u003cimg src=\"https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge\u0026logo=javascript\u0026logoColor=%23F7DF1E\" width=\"100\"\u003e  \n\u003cimg src=\"https://img.shields.io/badge/ESLint-4B3263?style=for-the-badge\u0026logo=eslint\u0026logoColor=white\" width=\"80\"\u003e  \n\u003cimg src=\"https://img.shields.io/badge/Nuxt-black?style=for-the-badge\u0026logo=nuxt.js\u0026logoColor=white\" width=\"70\"\u003e  \n\u003cimg src=\"https://img.shields.io/badge/tailwindcss-%2338B2AC.svg?style=for-the-badge\u0026logo=tailwind-css\u0026logoColor=white\" width=\"110\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/-jest-%23C21325?style=for-the-badge\u0026logo=jest\u0026logoColor=white\" width=\"60\"\u003e  \n\u003cbr/\u003e\n\u003ca href=\"https://www.npmjs.com/package/nuxt\" target=\"_blank\"\u003e\u003cimg src=\"https://badgen.net/npm/v/nuxt\" alt=\"Version\" /\u003e\u003c/a\u003e  \n\u003ca href=\"https://www.gnu.org/licenses/gpl-3.0\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-GPLv3-blue.svg\" alt=\"Package License\" /\u003e\u003c/a\u003e  \n\u003cimg alt=\"YouTube Channel Subscribers\" src=\"https://img.shields.io/youtube/channel/subscribers/UCJHZ__wUxS9lgTZHMxpMJcQ?style=social\"\u003e  \n\u003cbr/\u003e   \n\u003c/p\u003e\n\n## Features\n\nThis is a blog with course selling feature powered by [@nuxt/content](https://content.nuxtjs.org/) and  [TailwindCSS](https://tailwindcss.com/)  with integration-ready with [forestry.io](https://forestry.io/) for headless CMS.\n\n- Use [Docker](https://www.docker.com/) to containerize with [NginX](https://www.nginx.com/) serves as a reverse proxy.\n- Integrated [nuxt/google-analytics](https://google-analytics.nuxtjs.org/) with easy web measurement.\n- Preconfigured [daisyui](https://daisyui.com/) tailwind components with highly customizable interactive components\n- Integrated [@nuxtjs/moment](https://www.npmjs.com/package/@nuxtjs/moment) for time formatting\n- Smooth configurable page, layout transition at ``@/assets/css/main``\n- Integrated [@babel/eslint-parser, prettier](https://www.npmjs.com/package/@babel/eslint-parser) for codes' rules \u0026 styles checking and formatting\n- Integrated [geetest v4](https://www.geetest.com/en/) for bot prevention\n\n## TFD E-Learning\n- TFD Blog (Now TFD E-Learning) : https://github.com/tfd-ed/tfd-blog\n- TFD E-Learning Admin: https://github.com/tfd-ed/tfd-elearning-admin\n- TFD E-Learning API: https://github.com/tfd-ed/tfd-nest-blog-api\n\n## Demo\n[Official TFD Blog](https://tfdevs.com)\n\n## Setup Guide\n### With Docker (Recommended)\n**Clone** or **Fork** this git repository to your Github account.\n```bash  \n$ git clone https://github.com/tfd-ed/tfd-blog  \n````  \nCreate **.env** file from **.env.example** and replace **environment variables** with your owns.\n\n| Variable  | Description                               | Default                                         |  \n|---|-------------------------------------------|-------------------------------------------------|\n| GOOGLE_ANALYTICS_ID  | Your Google Analytics UA ID (UA-XXXXX-X)  |                                                 | \n|  WEB_URL | Your blog domain                          | https://www.tfdevs.com                          |\n|  FORMSPREE | Formspree to handle contact us submission | Read more: https://formspree.io/                                     |\n|  INSTAGRAM_URL | Link to your Instragram                   | https://www.instagram.com/darachaukh/           |\n|  FACEBOOK_URL | Link to your Facebook page or group       | https://www.facebook.com/teachingfordevelopment | \n|  TELEGRAM_URL | Link to your Telegram channel or group    | https://t.me/tfdTech                            | \n|  GITHUB_URL | Link to your Github account               | https://github.com/tfd-ed                       | \n| YOUTUBE_URL  | Link to your YouTube channel              | https://www.youtube.com/c/TeachingForDevelopment | \n|  SITE_TITLE | Your blog title                           | TFD Blog                                        | \n|  EMAIL | Your blog email address                   | info@tfdevs.com                                 | \n| YOUTUBE_CHANNEL_ID | Your YouTube channel id                   |                        |\n| GEETEST_ID_SIGN_UP | Geetest ID for Sign Up                    |                        |\n| GEETEST_KEY_SIGN_UP | Geetest Key for Sign Up                   |                         |\n| GEETEST_ID_RESET | Geetest ID for Reset Password             |                          |\n| GEETEST_KEY_RESET | Geetest Key for Reset Password            |                          |\n\n```bash    \n$ cd tfd-blog   \n$ docker-compose up -d   \n````  \nVisit http://localhost\n### Without Docker\nMake sure [NodeJS](https://nodejs.dev/) version 16.4.0+ is installed in your machine.\n```bash      \n$ yarn install  \n$ yarn dev  \n````  \nVisit http://localhost:3000/\n\n### Production\n```bash  \n# generate static project  \n$ yarn generate  \n$ yarn start  \n```  \n\n## Managing Content\n\nAll contents are located in `content/` directory where you can see the structure.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftfd-ed%2Ftfd-blog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftfd-ed%2Ftfd-blog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftfd-ed%2Ftfd-blog/lists"}