diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..10283bd --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,27 @@ +version: 2 +updates: + # GitHub Actions + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + groups: + actions: + patterns: + - "*" + assignees: + - "@mongodb/dbx-python" + # Python + - package-ecosystem: "pip" + directory: "{{cookiecutter.project_slug}}/backend" + schedule: + interval: "weekly" + assignees: + - "@mongodb/dbx-python" + # Node + - package-ecosystem: "npm" + directory: "{{cookiecutter.project_slug}}/frontend" + schedule: + interval: "weekly" + assignees: + - "@mongodb/dbx-python" \ No newline at end of file diff --git a/README.md b/README.md index 6581161..7a18d9e 100644 --- a/README.md +++ b/README.md @@ -97,7 +97,7 @@ This FastAPI, React, MongoDB repo will generate a complete web application stack - **Flower** for Celery jobs monitoring. - Load balancing between frontend and backend with **Traefik**, so you can have both under the same domain, separated by path, but served by different containers. - Traefik integration, including Let's Encrypt **HTTPS** certificates automatic generation. -- GitLab **CI** (continuous integration), including frontend and backend testing. +- GitHub **CI** (continuous integration), including frontend and backend testing. ## How to use the template diff --git a/{{cookiecutter.project_slug}}/frontend/app/assets/css/main.css b/{{cookiecutter.project_slug}}/frontend/app/assets/css/main.css index c48a7a7..1867423 100644 --- a/{{cookiecutter.project_slug}}/frontend/app/assets/css/main.css +++ b/{{cookiecutter.project_slug}}/frontend/app/assets/css/main.css @@ -1,3 +1,4 @@ +@import "tailwindcss"; @tailwind base; html, @@ -9,4 +10,4 @@ body, } @tailwind components; -@tailwind utilities; +@tailwind utilities; \ No newline at end of file diff --git a/{{cookiecutter.project_slug}}/frontend/app/components/settings/Profile.tsx b/{{cookiecutter.project_slug}}/frontend/app/components/settings/Profile.tsx index 04fa578..e61b535 100644 --- a/{{cookiecutter.project_slug}}/frontend/app/components/settings/Profile.tsx +++ b/{{cookiecutter.project_slug}}/frontend/app/components/settings/Profile.tsx @@ -18,7 +18,8 @@ const renderError = (type: LiteralUnion) => { switch (type) { case "required": return
This field is required.
; - case "minLength" || "maxLength": + case "minLength": + case "maxLength": return (
Your password must be between 8 and 64 characters long. diff --git a/{{cookiecutter.project_slug}}/frontend/app/components/settings/Security.tsx b/{{cookiecutter.project_slug}}/frontend/app/components/settings/Security.tsx index 6f7f167..d95a48d 100644 --- a/{{cookiecutter.project_slug}}/frontend/app/components/settings/Security.tsx +++ b/{{cookiecutter.project_slug}}/frontend/app/components/settings/Security.tsx @@ -39,7 +39,8 @@ const renderError = (type: LiteralUnion) => { switch (type) { case "required": return
This field is required.
; - case "minLength" || "maxLength": + case "minLength": + case "maxLength": return (
Your password must be between 8 and 64 characters long. diff --git a/{{cookiecutter.project_slug}}/frontend/app/login/page.tsx b/{{cookiecutter.project_slug}}/frontend/app/login/page.tsx index 63bcfc6..5202013 100644 --- a/{{cookiecutter.project_slug}}/frontend/app/login/page.tsx +++ b/{{cookiecutter.project_slug}}/frontend/app/login/page.tsx @@ -26,7 +26,8 @@ const renderError = (type: LiteralUnion) => { switch (type) { case "required": return
This field is required.
; - case "minLength" || "maxLength": + case "minLength": + case "maxLength": return (
Your password must be between 8 and 64 characters long. diff --git a/{{cookiecutter.project_slug}}/frontend/app/reset-password/page.tsx b/{{cookiecutter.project_slug}}/frontend/app/reset-password/page.tsx index 0b7faae..9a6b746 100644 --- a/{{cookiecutter.project_slug}}/frontend/app/reset-password/page.tsx +++ b/{{cookiecutter.project_slug}}/frontend/app/reset-password/page.tsx @@ -21,7 +21,8 @@ const renderError = (type: LiteralUnion) => { switch (type) { case "required": return
This field is required.
; - case "minLength" || "maxLength": + case "minLength": + case "maxLength": return (
Your password must be between 8 and 64 characters long. diff --git a/{{cookiecutter.project_slug}}/frontend/package.json b/{{cookiecutter.project_slug}}/frontend/package.json index 4da9fa2..cf83baf 100644 --- a/{{cookiecutter.project_slug}}/frontend/package.json +++ b/{{cookiecutter.project_slug}}/frontend/package.json @@ -18,6 +18,7 @@ "@reduxjs/toolkit": "^1.9.6", "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/forms": "^0.5.6", + "@tailwindcss/postcss": "^4.0.9", "@tailwindcss/typography": "^0.5.10", "gray-matter": "^4.0.3", "next": "^14.0.4", diff --git a/{{cookiecutter.project_slug}}/frontend/postcss.config.js b/{{cookiecutter.project_slug}}/frontend/postcss.config.js deleted file mode 100644 index 12a703d..0000000 --- a/{{cookiecutter.project_slug}}/frontend/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -}; diff --git a/{{cookiecutter.project_slug}}/frontend/postcss.config.mjs b/{{cookiecutter.project_slug}}/frontend/postcss.config.mjs new file mode 100644 index 0000000..243faf9 --- /dev/null +++ b/{{cookiecutter.project_slug}}/frontend/postcss.config.mjs @@ -0,0 +1,9 @@ +const config = { + plugins: { + '@tailwindcss/postcss': {}, + autoprefixer: {}, + }, + +}; + +export default config; \ No newline at end of file diff --git a/{{cookiecutter.project_slug}}/frontend/tailwind.config.ts b/{{cookiecutter.project_slug}}/frontend/tailwind.config.ts index 8b2596f..10f053f 100644 --- a/{{cookiecutter.project_slug}}/frontend/tailwind.config.ts +++ b/{{cookiecutter.project_slug}}/frontend/tailwind.config.ts @@ -1,6 +1,6 @@ import type { Config } from "tailwindcss"; +import colors from "tailwindcss/colors"; -const colors: import("tailwindcss").Config = require("tailwindcss/colors"); module.exports = { content: [ "./pages/**/*.{js,ts,jsx,tsx,mdx}",