├── .github ├── ISSUE_TEMPLATE.md └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── Contributing.md ├── LICENSE ├── README.md ├── docs ├── cover.png ├── logo.svg └── srmkzilla_logo.png ├── package.json ├── src ├── cli │ ├── generator.ts │ ├── greet.ts │ ├── index.ts │ └── main.ts ├── index.js └── templates │ ├── client-bootstrap-js │ ├── .eslintrc │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── docs │ │ ├── cover.png │ │ └── logo.svg │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ └── src │ │ ├── App.jsx │ │ ├── App.scss │ │ ├── index.jsx │ │ ├── index.scss │ │ ├── logo.svg │ │ ├── reportWebVitals.js │ │ └── setupTests.js │ ├── client-bootstrap-ts │ ├── .eslintrc │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── docs │ │ ├── cover.png │ │ └── logo.svg │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ ├── src │ │ ├── App.scss │ │ ├── App.tsx │ │ ├── index.scss │ │ ├── index.tsx │ │ ├── logo.svg │ │ ├── react-app-env.d.ts │ │ ├── reportWebVitals.ts │ │ └── setupTests.ts │ └── tsconfig.json │ ├── client-css-js │ ├── .eslintrc │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── docs │ │ ├── cover.png │ │ └── logo.svg │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ └── src │ │ ├── App.css │ │ ├── App.jsx │ │ ├── index.css │ │ ├── index.jsx │ │ ├── logo.svg │ │ ├── reportWebVitals.js │ │ └── setupTests.js │ ├── client-css-ts │ ├── .eslintrc │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── docs │ │ ├── cover.png │ │ └── logo.svg │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ ├── src │ │ ├── App.css │ │ ├── App.tsx │ │ ├── index.css │ │ ├── index.tsx │ │ ├── logo.svg │ │ ├── react-app-env.d.ts │ │ ├── reportWebVitals.ts │ │ └── setupTests.ts │ └── tsconfig.json │ ├── client-scss-js │ ├── .eslintrc │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── docs │ │ ├── cover.png │ │ └── logo.svg │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ └── src │ │ ├── App.jsx │ │ ├── App.scss │ │ ├── index.jsx │ │ ├── index.scss │ │ ├── logo.svg │ │ ├── reportWebVitals.js │ │ └── setupTests.js │ ├── client-scss-ts │ ├── .eslintrc │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── docs │ │ ├── cover.png │ │ └── logo.svg │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ ├── src │ │ ├── App.scss │ │ ├── App.tsx │ │ ├── index.scss │ │ ├── index.tsx │ │ ├── logo.svg │ │ ├── react-app-env.d.ts │ │ ├── reportWebVitals.ts │ │ └── setupTests.ts │ └── tsconfig.json │ ├── client-styled-components-js │ ├── .eslintrc │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── docs │ │ ├── cover.png │ │ └── logo.svg │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ └── src │ │ ├── App.jsx │ │ ├── App.scss │ │ ├── index.jsx │ │ ├── index.scss │ │ ├── logo.svg │ │ ├── reportWebVitals.js │ │ └── setupTests.js │ ├── client-styled-components-ts │ ├── .eslintrc │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── docs │ │ ├── cover.png │ │ └── logo.svg │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ ├── src │ │ ├── App.scss │ │ ├── App.tsx │ │ ├── index.scss │ │ ├── index.tsx │ │ ├── logo.svg │ │ ├── react-app-env.d.ts │ │ ├── reportWebVitals.ts │ │ └── setupTests.ts │ └── tsconfig.json │ ├── client-tailwind-js │ ├── .eslintrc │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── docs │ │ ├── cover.png │ │ └── logo.svg │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ ├── src │ │ ├── App.jsx │ │ ├── App.scss │ │ ├── index.jsx │ │ ├── logo.svg │ │ ├── reportWebVitals.js │ │ ├── setupTests.js │ │ └── tailwind.style.scss │ └── tailwind.config.js │ ├── client-tailwind-ts │ ├── .eslintrc │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── docs │ │ ├── cover.png │ │ └── logo.svg │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── robots.txt │ ├── src │ │ ├── App.scss │ │ ├── App.tsx │ │ ├── index.tsx │ │ ├── logo.svg │ │ ├── react-app-env.d.ts │ │ ├── reportWebVitals.ts │ │ ├── setupTests.ts │ │ └── tailwind.style.scss │ ├── tailwind.config.js │ └── tsconfig.json │ ├── full-stack-bootstrap-express-js │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── client │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── .prettierrc.json │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ └── src │ │ │ ├── App.jsx │ │ │ ├── App.scss │ │ │ ├── index.jsx │ │ │ ├── index.scss │ │ │ ├── logo.svg │ │ │ ├── reportWebVitals.js │ │ │ └── setupTests.js │ ├── docs │ │ └── logo.svg │ ├── package.json │ └── src │ │ ├── api │ │ └── index.js │ │ ├── config │ │ └── index.js │ │ ├── index.js │ │ └── loaders │ │ ├── database.js │ │ ├── express.js │ │ ├── index.js │ │ └── logger.js │ ├── full-stack-bootstrap-express-ts │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── client │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── src │ │ │ ├── App.scss │ │ │ ├── App.tsx │ │ │ ├── index.tsx │ │ │ ├── logo.svg │ │ │ ├── react-app-env.d.ts │ │ │ ├── reportWebVitals.ts │ │ │ └── setupTests.ts │ │ └── tsconfig.json │ ├── docs │ │ └── logo.svg │ ├── package.json │ ├── src │ │ ├── api │ │ │ └── index.ts │ │ ├── config │ │ │ └── index.ts │ │ ├── index.ts │ │ └── loaders │ │ │ ├── database.ts │ │ │ ├── express.ts │ │ │ ├── index.ts │ │ │ └── logger.ts │ └── tsconfig.json │ ├── full-stack-bootstrap-server-js │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── client │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── .prettierrc.json │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ └── src │ │ │ ├── App.jsx │ │ │ ├── App.scss │ │ │ ├── index.jsx │ │ │ ├── index.scss │ │ │ ├── logo.svg │ │ │ ├── reportWebVitals.js │ │ │ └── setupTests.js │ ├── docs │ │ ├── cover.png │ │ └── logo.svg │ ├── package.json │ └── src │ │ └── index.js │ ├── full-stack-bootstrap-ts │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── client │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── src │ │ │ ├── App.scss │ │ │ ├── App.tsx │ │ │ ├── index.tsx │ │ │ ├── logo.svg │ │ │ ├── react-app-env.d.ts │ │ │ ├── reportWebVitals.ts │ │ │ └── setupTests.ts │ │ └── tsconfig.json │ ├── docs │ │ └── logo.svg │ ├── package.json │ ├── src │ │ └── index.ts │ └── tsconfig.json │ ├── full-stack-css-express-js │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── client │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── .prettierrc.json │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ └── src │ │ │ ├── App.css │ │ │ ├── App.jsx │ │ │ ├── index.css │ │ │ ├── index.jsx │ │ │ ├── logo.svg │ │ │ ├── reportWebVitals.js │ │ │ └── setupTests.js │ ├── docs │ │ └── logo.svg │ ├── package.json │ └── src │ │ ├── api │ │ └── index.js │ │ ├── config │ │ └── index.js │ │ ├── index.js │ │ └── loaders │ │ ├── database.js │ │ ├── express.js │ │ ├── index.js │ │ └── logger.js │ ├── full-stack-css-express-ts │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── client │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── src │ │ │ ├── App.css │ │ │ ├── App.tsx │ │ │ ├── index.css │ │ │ ├── index.tsx │ │ │ ├── logo.svg │ │ │ ├── react-app-env.d.ts │ │ │ ├── reportWebVitals.ts │ │ │ └── setupTests.ts │ │ └── tsconfig.json │ ├── docs │ │ └── logo.svg │ ├── package.json │ ├── src │ │ ├── api │ │ │ └── index.ts │ │ ├── config │ │ │ └── index.ts │ │ ├── index.ts │ │ └── loaders │ │ │ ├── database.ts │ │ │ ├── express.ts │ │ │ ├── index.ts │ │ │ └── logger.ts │ └── tsconfig.json │ ├── full-stack-css-server-js │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── client │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── .prettierrc.json │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ └── src │ │ │ ├── App.css │ │ │ ├── App.jsx │ │ │ ├── index.css │ │ │ ├── index.jsx │ │ │ ├── logo.svg │ │ │ ├── reportWebVitals.js │ │ │ └── setupTests.js │ ├── docs │ │ ├── cover.png │ │ └── logo.svg │ ├── package.json │ └── src │ │ └── index.js │ ├── full-stack-css-ts │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── client │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── src │ │ │ ├── App.css │ │ │ ├── App.tsx │ │ │ ├── index.css │ │ │ ├── index.tsx │ │ │ ├── logo.svg │ │ │ ├── react-app-env.d.ts │ │ │ ├── reportWebVitals.ts │ │ │ └── setupTests.ts │ │ └── tsconfig.json │ ├── docs │ │ └── logo.svg │ ├── package.json │ ├── src │ │ └── index.ts │ └── tsconfig.json │ ├── full-stack-scss-express-js │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── client │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── .prettierrc.json │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ └── src │ │ │ ├── App.jsx │ │ │ ├── App.scss │ │ │ ├── index.jsx │ │ │ ├── index.scss │ │ │ ├── logo.svg │ │ │ ├── reportWebVitals.js │ │ │ └── setupTests.js │ ├── docs │ │ └── logo.svg │ ├── package.json │ └── src │ │ ├── api │ │ └── index.js │ │ ├── config │ │ └── index.js │ │ ├── index.js │ │ └── loaders │ │ ├── database.js │ │ ├── express.js │ │ ├── index.js │ │ └── logger.js │ ├── full-stack-scss-express-ts │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── client │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── src │ │ │ ├── App.scss │ │ │ ├── App.tsx │ │ │ ├── index.tsx │ │ │ ├── logo.svg │ │ │ ├── react-app-env.d.ts │ │ │ ├── reportWebVitals.ts │ │ │ └── setupTests.ts │ │ └── tsconfig.json │ ├── docs │ │ └── logo.svg │ ├── package.json │ ├── src │ │ ├── api │ │ │ └── index.ts │ │ ├── config │ │ │ └── index.ts │ │ ├── index.ts │ │ └── loaders │ │ │ ├── database.ts │ │ │ ├── express.ts │ │ │ ├── index.ts │ │ │ └── logger.ts │ └── tsconfig.json │ ├── full-stack-scss-server-js │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── client │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── .prettierrc.json │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ └── src │ │ │ ├── App.jsx │ │ │ ├── App.scss │ │ │ ├── index.jsx │ │ │ ├── index.scss │ │ │ ├── logo.svg │ │ │ ├── reportWebVitals.js │ │ │ └── setupTests.js │ ├── docs │ │ ├── cover.png │ │ └── logo.svg │ ├── package.json │ └── src │ │ └── index.js │ ├── full-stack-scss-ts │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── client │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── src │ │ │ ├── App.scss │ │ │ ├── App.tsx │ │ │ ├── index.tsx │ │ │ ├── logo.svg │ │ │ ├── react-app-env.d.ts │ │ │ ├── reportWebVitals.ts │ │ │ └── setupTests.ts │ │ └── tsconfig.json │ ├── docs │ │ └── logo.svg │ ├── package.json │ ├── src │ │ └── index.ts │ └── tsconfig.json │ ├── full-stack-styled-components-express-js │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── client │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── .prettierrc.json │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ └── src │ │ │ ├── App.jsx │ │ │ ├── App.scss │ │ │ ├── index.jsx │ │ │ ├── index.scss │ │ │ ├── logo.svg │ │ │ ├── reportWebVitals.js │ │ │ └── setupTests.js │ ├── docs │ │ └── logo.svg │ ├── package.json │ └── src │ │ ├── api │ │ └── index.js │ │ ├── config │ │ └── index.js │ │ ├── index.js │ │ └── loaders │ │ ├── database.js │ │ ├── express.js │ │ ├── index.js │ │ └── logger.js │ ├── full-stack-styled-components-express-ts │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── client │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── src │ │ │ ├── App.scss │ │ │ ├── App.tsx │ │ │ ├── index.tsx │ │ │ ├── logo.svg │ │ │ ├── react-app-env.d.ts │ │ │ ├── reportWebVitals.ts │ │ │ └── setupTests.ts │ │ └── tsconfig.json │ ├── docs │ │ └── logo.svg │ ├── package.json │ ├── src │ │ ├── api │ │ │ └── index.ts │ │ ├── config │ │ │ └── index.ts │ │ ├── index.ts │ │ └── loaders │ │ │ ├── database.ts │ │ │ ├── express.ts │ │ │ ├── index.ts │ │ │ └── logger.ts │ └── tsconfig.json │ ├── full-stack-styled-components-server-js │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── client │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── .prettierrc.json │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ └── src │ │ │ ├── App.jsx │ │ │ ├── App.scss │ │ │ ├── index.jsx │ │ │ ├── index.scss │ │ │ ├── logo.svg │ │ │ ├── reportWebVitals.js │ │ │ └── setupTests.js │ ├── docs │ │ ├── cover.png │ │ └── logo.svg │ ├── package.json │ └── src │ │ └── index.js │ ├── full-stack-styled-components-ts │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── client │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── src │ │ │ ├── App.scss │ │ │ ├── App.tsx │ │ │ ├── index.tsx │ │ │ ├── logo.svg │ │ │ ├── react-app-env.d.ts │ │ │ ├── reportWebVitals.ts │ │ │ └── setupTests.ts │ │ └── tsconfig.json │ ├── docs │ │ └── logo.svg │ ├── package.json │ ├── src │ │ └── index.ts │ └── tsconfig.json │ ├── full-stack-tailwind-express-js │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── client │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── .prettierrc.json │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── src │ │ │ ├── App.jsx │ │ │ ├── App.scss │ │ │ ├── index.jsx │ │ │ ├── logo.svg │ │ │ ├── reportWebVitals.js │ │ │ ├── setupTests.js │ │ │ └── tailwind.style.scss │ │ └── tailwind.config.js │ ├── docs │ │ └── logo.svg │ ├── package.json │ └── src │ │ ├── api │ │ └── index.js │ │ ├── config │ │ └── index.js │ │ ├── index.js │ │ └── loaders │ │ ├── database.js │ │ ├── express.js │ │ ├── index.js │ │ └── logger.js │ ├── full-stack-tailwind-server-js │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── client │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── .prettierrc.json │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── src │ │ │ ├── App.jsx │ │ │ ├── App.scss │ │ │ ├── index.jsx │ │ │ ├── logo.svg │ │ │ ├── reportWebVitals.js │ │ │ ├── setupTests.js │ │ │ └── tailwind.style.scss │ │ └── tailwind.config.js │ ├── docs │ │ ├── cover.png │ │ └── logo.svg │ ├── package.json │ └── src │ │ └── index.js │ ├── full-stack-tailwind-ts │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── client │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── src │ │ │ ├── App.scss │ │ │ ├── App.tsx │ │ │ ├── index.tsx │ │ │ ├── logo.svg │ │ │ ├── react-app-env.d.ts │ │ │ ├── reportWebVitals.ts │ │ │ ├── setupTests.ts │ │ │ └── tailwind.style.scss │ │ ├── tailwind.config.js │ │ └── tsconfig.json │ ├── docs │ │ └── logo.svg │ ├── package.json │ ├── src │ │ └── index.ts │ └── tsconfig.json │ ├── full-stack-tailwind-tsx-express-ts │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── client │ │ ├── .eslintrc │ │ ├── .gitignore │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ ├── logo192.png │ │ │ ├── logo512.png │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── src │ │ │ ├── App.scss │ │ │ ├── App.tsx │ │ │ ├── index.tsx │ │ │ ├── logo.svg │ │ │ ├── react-app-env.d.ts │ │ │ ├── reportWebVitals.ts │ │ │ ├── setupTests.ts │ │ │ └── tailwind.style.scss │ │ ├── tailwind.config.js │ │ └── tsconfig.json │ ├── docs │ │ └── logo.svg │ ├── package.json │ ├── src │ │ ├── api │ │ │ └── index.ts │ │ ├── config │ │ │ └── index.ts │ │ ├── index.ts │ │ └── loaders │ │ │ ├── database.ts │ │ │ ├── express.ts │ │ │ ├── index.ts │ │ │ └── logger.ts │ └── tsconfig.json │ ├── server-express-js │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── docs │ │ └── logo.svg │ ├── package.json │ └── src │ │ ├── api │ │ └── index.js │ │ ├── config │ │ └── index.js │ │ ├── index.js │ │ └── loaders │ │ ├── database.js │ │ ├── express.js │ │ ├── index.js │ │ └── logger.js │ ├── server-express-ts │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── docs │ │ └── logo.svg │ ├── package.json │ ├── src │ │ ├── api │ │ │ └── index.ts │ │ ├── config │ │ │ └── index.ts │ │ ├── index.ts │ │ └── loaders │ │ │ ├── database.ts │ │ │ ├── express.ts │ │ │ ├── index.ts │ │ │ └── logger.ts │ └── tsconfig.json │ ├── server-js │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── docs │ │ ├── cover.png │ │ └── logo.svg │ ├── package.json │ └── src │ │ └── index.js │ └── server-ts │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc │ ├── .github │ ├── ISSUE_TEMPLATE.md │ └── PULL_REQUEST_TEMPLATE.md │ ├── .gitignore │ ├── .prettierrc.json │ ├── Contributing.md │ ├── README.md │ ├── docs │ └── logo.svg │ ├── package.json │ ├── src │ └── index.ts │ └── tsconfig.json ├── tsconfig.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | *.logs 4 | build 5 | node_modules -------------------------------------------------------------------------------- /docs/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/docs/cover.png -------------------------------------------------------------------------------- /docs/srmkzilla_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/docs/srmkzilla_logo.png -------------------------------------------------------------------------------- /src/cli/index.ts: -------------------------------------------------------------------------------- 1 | import generator from "./generator"; 2 | import greet, { showVersion } from "./greet"; 3 | import main from "./main"; 4 | 5 | export { greet, main, generator, showVersion }; 6 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | import { greet, main, showVersion } from "./cli"; 3 | 4 | function runner() { 5 | const args = process.argv; 6 | 7 | if (args.includes("-v") || args.includes("--version")) { 8 | return showVersion(); 9 | } 10 | 11 | greet(); 12 | main(); 13 | } 14 | 15 | runner(); 16 | -------------------------------------------------------------------------------- /src/templates/client-bootstrap-js/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /src/templates/client-bootstrap-js/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/client-bootstrap-js/docs/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-bootstrap-js/docs/cover.png -------------------------------------------------------------------------------- /src/templates/client-bootstrap-js/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-bootstrap-js/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/client-bootstrap-js/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-bootstrap-js/public/logo192.png -------------------------------------------------------------------------------- /src/templates/client-bootstrap-js/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-bootstrap-js/public/logo512.png -------------------------------------------------------------------------------- /src/templates/client-bootstrap-js/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/client-bootstrap-js/src/index.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.scss'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root'), 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/client-bootstrap-js/src/index.scss: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", 4 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /src/templates/client-bootstrap-js/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /src/templates/client-bootstrap-js/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/client-bootstrap-ts/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /src/templates/client-bootstrap-ts/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/client-bootstrap-ts/docs/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-bootstrap-ts/docs/cover.png -------------------------------------------------------------------------------- /src/templates/client-bootstrap-ts/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-bootstrap-ts/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/client-bootstrap-ts/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-bootstrap-ts/public/logo192.png -------------------------------------------------------------------------------- /src/templates/client-bootstrap-ts/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-bootstrap-ts/public/logo512.png -------------------------------------------------------------------------------- /src/templates/client-bootstrap-ts/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/client-bootstrap-ts/src/index.scss: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /src/templates/client-bootstrap-ts/src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom"; 3 | import "./index.scss"; 4 | import App from "./App"; 5 | import reportWebVitals from "./reportWebVitals"; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById("root") 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/client-bootstrap-ts/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/templates/client-bootstrap-ts/src/reportWebVitals.ts: -------------------------------------------------------------------------------- 1 | import { ReportHandler } from "web-vitals"; 2 | 3 | const reportWebVitals: () => void = (onPerfEntry?: ReportHandler) => { 4 | if (onPerfEntry && onPerfEntry instanceof Function) { 5 | import("web-vitals").then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 6 | getCLS(onPerfEntry); 7 | getFID(onPerfEntry); 8 | getFCP(onPerfEntry); 9 | getLCP(onPerfEntry); 10 | getTTFB(onPerfEntry); 11 | }); 12 | } 13 | }; 14 | 15 | export default reportWebVitals; 16 | -------------------------------------------------------------------------------- /src/templates/client-bootstrap-ts/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import "@testing-library/jest-dom"; 6 | -------------------------------------------------------------------------------- /src/templates/client-css-js/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /src/templates/client-css-js/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/client-css-js/docs/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-css-js/docs/cover.png -------------------------------------------------------------------------------- /src/templates/client-css-js/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-css-js/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/client-css-js/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-css-js/public/logo192.png -------------------------------------------------------------------------------- /src/templates/client-css-js/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-css-js/public/logo512.png -------------------------------------------------------------------------------- /src/templates/client-css-js/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/client-css-js/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /src/templates/client-css-js/src/index.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.scss'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root'), 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/client-css-js/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /src/templates/client-css-js/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/client-css-ts/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /src/templates/client-css-ts/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/client-css-ts/docs/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-css-ts/docs/cover.png -------------------------------------------------------------------------------- /src/templates/client-css-ts/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-css-ts/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/client-css-ts/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-css-ts/public/logo192.png -------------------------------------------------------------------------------- /src/templates/client-css-ts/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-css-ts/public/logo512.png -------------------------------------------------------------------------------- /src/templates/client-css-ts/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/client-css-ts/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /src/templates/client-css-ts/src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.css'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root'), 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/client-css-ts/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/templates/client-css-ts/src/reportWebVitals.ts: -------------------------------------------------------------------------------- 1 | import { ReportHandler } from 'web-vitals'; 2 | 3 | const reportWebVitals: () => void = (onPerfEntry?: ReportHandler) => { 4 | if (onPerfEntry && onPerfEntry instanceof Function) { 5 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 6 | getCLS(onPerfEntry); 7 | getFID(onPerfEntry); 8 | getFCP(onPerfEntry); 9 | getLCP(onPerfEntry); 10 | getTTFB(onPerfEntry); 11 | }); 12 | } 13 | }; 14 | 15 | export default reportWebVitals; 16 | -------------------------------------------------------------------------------- /src/templates/client-css-ts/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/client-scss-js/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /src/templates/client-scss-js/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/client-scss-js/docs/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-scss-js/docs/cover.png -------------------------------------------------------------------------------- /src/templates/client-scss-js/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-scss-js/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/client-scss-js/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-scss-js/public/logo192.png -------------------------------------------------------------------------------- /src/templates/client-scss-js/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-scss-js/public/logo512.png -------------------------------------------------------------------------------- /src/templates/client-scss-js/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/client-scss-js/src/index.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.scss'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root'), 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/client-scss-js/src/index.scss: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /src/templates/client-scss-js/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /src/templates/client-scss-js/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/client-scss-ts/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /src/templates/client-scss-ts/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/client-scss-ts/docs/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-scss-ts/docs/cover.png -------------------------------------------------------------------------------- /src/templates/client-scss-ts/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-scss-ts/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/client-scss-ts/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-scss-ts/public/logo192.png -------------------------------------------------------------------------------- /src/templates/client-scss-ts/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-scss-ts/public/logo512.png -------------------------------------------------------------------------------- /src/templates/client-scss-ts/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/client-scss-ts/src/index.scss: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /src/templates/client-scss-ts/src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.scss'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root'), 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/client-scss-ts/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/templates/client-scss-ts/src/reportWebVitals.ts: -------------------------------------------------------------------------------- 1 | import { ReportHandler } from 'web-vitals'; 2 | 3 | const reportWebVitals: () => void = (onPerfEntry?: ReportHandler) => { 4 | if (onPerfEntry && onPerfEntry instanceof Function) { 5 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 6 | getCLS(onPerfEntry); 7 | getFID(onPerfEntry); 8 | getFCP(onPerfEntry); 9 | getLCP(onPerfEntry); 10 | getTTFB(onPerfEntry); 11 | }); 12 | } 13 | }; 14 | 15 | export default reportWebVitals; 16 | -------------------------------------------------------------------------------- /src/templates/client-scss-ts/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/client-styled-components-js/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /src/templates/client-styled-components-js/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/client-styled-components-js/docs/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-styled-components-js/docs/cover.png -------------------------------------------------------------------------------- /src/templates/client-styled-components-js/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-styled-components-js/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/client-styled-components-js/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-styled-components-js/public/logo192.png -------------------------------------------------------------------------------- /src/templates/client-styled-components-js/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-styled-components-js/public/logo512.png -------------------------------------------------------------------------------- /src/templates/client-styled-components-js/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/client-styled-components-js/src/index.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.scss'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root'), 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/client-styled-components-js/src/index.scss: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /src/templates/client-styled-components-js/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /src/templates/client-styled-components-js/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/client-styled-components-ts/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /src/templates/client-styled-components-ts/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/client-styled-components-ts/docs/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-styled-components-ts/docs/cover.png -------------------------------------------------------------------------------- /src/templates/client-styled-components-ts/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-styled-components-ts/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/client-styled-components-ts/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-styled-components-ts/public/logo192.png -------------------------------------------------------------------------------- /src/templates/client-styled-components-ts/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-styled-components-ts/public/logo512.png -------------------------------------------------------------------------------- /src/templates/client-styled-components-ts/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/client-styled-components-ts/src/index.scss: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /src/templates/client-styled-components-ts/src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.scss'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root'), 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/client-styled-components-ts/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/templates/client-styled-components-ts/src/reportWebVitals.ts: -------------------------------------------------------------------------------- 1 | import { ReportHandler } from 'web-vitals'; 2 | 3 | const reportWebVitals: () => void = (onPerfEntry?: ReportHandler) => { 4 | if (onPerfEntry && onPerfEntry instanceof Function) { 5 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 6 | getCLS(onPerfEntry); 7 | getFID(onPerfEntry); 8 | getFCP(onPerfEntry); 9 | getLCP(onPerfEntry); 10 | getTTFB(onPerfEntry); 11 | }); 12 | } 13 | }; 14 | 15 | export default reportWebVitals; 16 | -------------------------------------------------------------------------------- /src/templates/client-styled-components-ts/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/client-tailwind-js/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | 25 | src/index.scss -------------------------------------------------------------------------------- /src/templates/client-tailwind-js/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/client-tailwind-js/docs/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-tailwind-js/docs/cover.png -------------------------------------------------------------------------------- /src/templates/client-tailwind-js/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-tailwind-js/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/client-tailwind-js/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-tailwind-js/public/logo192.png -------------------------------------------------------------------------------- /src/templates/client-tailwind-js/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-tailwind-js/public/logo512.png -------------------------------------------------------------------------------- /src/templates/client-tailwind-js/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/client-tailwind-js/src/index.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.scss'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root'), 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/client-tailwind-js/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /src/templates/client-tailwind-js/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/client-tailwind-js/src/tailwind.style.scss: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | body { 6 | margin: 0; 7 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", 8 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", 9 | sans-serif; 10 | -webkit-font-smoothing: antialiased; 11 | -moz-osx-font-smoothing: grayscale; 12 | } 13 | 14 | code { 15 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", 16 | monospace; 17 | } 18 | -------------------------------------------------------------------------------- /src/templates/client-tailwind-js/tailwind.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | future: {}, 3 | purge: [], 4 | darkMode: false, 5 | theme: { 6 | extend: {}, 7 | }, 8 | variants: {}, 9 | plugins: [], 10 | }; 11 | -------------------------------------------------------------------------------- /src/templates/client-tailwind-ts/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | 25 | src/index.scss -------------------------------------------------------------------------------- /src/templates/client-tailwind-ts/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/client-tailwind-ts/docs/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-tailwind-ts/docs/cover.png -------------------------------------------------------------------------------- /src/templates/client-tailwind-ts/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-tailwind-ts/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/client-tailwind-ts/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-tailwind-ts/public/logo192.png -------------------------------------------------------------------------------- /src/templates/client-tailwind-ts/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/client-tailwind-ts/public/logo512.png -------------------------------------------------------------------------------- /src/templates/client-tailwind-ts/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/client-tailwind-ts/src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.scss'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root'), 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/client-tailwind-ts/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/templates/client-tailwind-ts/src/reportWebVitals.ts: -------------------------------------------------------------------------------- 1 | import { ReportHandler } from 'web-vitals'; 2 | 3 | const reportWebVitals: () => void = (onPerfEntry?: ReportHandler) => { 4 | if (onPerfEntry && onPerfEntry instanceof Function) { 5 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 6 | getCLS(onPerfEntry); 7 | getFID(onPerfEntry); 8 | getFCP(onPerfEntry); 9 | getLCP(onPerfEntry); 10 | getTTFB(onPerfEntry); 11 | }); 12 | } 13 | }; 14 | 15 | export default reportWebVitals; 16 | -------------------------------------------------------------------------------- /src/templates/client-tailwind-ts/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/client-tailwind-ts/src/tailwind.style.scss: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | body { 6 | margin: 0; 7 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", 8 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", 9 | sans-serif; 10 | -webkit-font-smoothing: antialiased; 11 | -moz-osx-font-smoothing: grayscale; 12 | } 13 | 14 | code { 15 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", 16 | monospace; 17 | } 18 | -------------------------------------------------------------------------------- /src/templates/client-tailwind-ts/tailwind.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | future: {}, 3 | purge: [], 4 | darkMode: false, 5 | theme: { 6 | extend: {}, 7 | }, 8 | variants: {}, 9 | plugins: [], 10 | }; 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-js/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-js/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-js/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-js/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | node_modules 5 | npm-debug.log* 6 | yarn-debug.log* 7 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-js/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-js/client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-js/client/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-js/client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-bootstrap-express-js/client/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-js/client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-bootstrap-express-js/client/public/logo192.png -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-js/client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-bootstrap-express-js/client/public/logo512.png -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-js/client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-js/client/src/index.scss: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", 4 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-js/client/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-js/client/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-js/src/api/index.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | 3 | module.exports = () => { 4 | const app = express.Router(); 5 | 6 | //TODO: add routes here... 7 | 8 | return app; 9 | }; 10 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-js/src/loaders/database.js: -------------------------------------------------------------------------------- 1 | const { MongoClient } = require('mongodb'); 2 | const config = require('../config'); 3 | 4 | let db; 5 | 6 | async function initializeClient() { 7 | const client = await MongoClient.connect(config.databaseURL, { 8 | useNewUrlParser: true, 9 | useUnifiedTopology: true, 10 | ignoreUndefined: true, 11 | }); 12 | 13 | return client.db(); 14 | } 15 | 16 | module.exports = async () => { 17 | if (!db) { 18 | db = await initializeClient(); 19 | } 20 | 21 | return db; 22 | }; 23 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-js/src/loaders/index.js: -------------------------------------------------------------------------------- 1 | const config = require('../config'); 2 | const database = require('./database'); 3 | const express = require('./express'); 4 | const Logger = require('./Logger'); 5 | 6 | module.exports = async ({ expressApp }) => { 7 | await database(); 8 | Logger.info(`✌️ Connection to database successful`); 9 | 10 | await express({ app: expressApp }); 11 | Logger.info('✌️ Express loaded'); 12 | 13 | Logger.info('✅ All modules loaded!'); 14 | }; 15 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-ts/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-ts/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-ts/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-ts/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | build 5 | node_modules 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-ts/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-ts/client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | 25 | src/index.scss -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-ts/client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-bootstrap-express-ts/client/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-ts/client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-bootstrap-express-ts/client/public/logo192.png -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-ts/client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-bootstrap-express-ts/client/public/logo512.png -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-ts/client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-ts/client/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-ts/client/src/reportWebVitals.ts: -------------------------------------------------------------------------------- 1 | import { ReportHandler } from 'web-vitals'; 2 | 3 | const reportWebVitals: () => void = (onPerfEntry?: ReportHandler) => { 4 | if (onPerfEntry && onPerfEntry instanceof Function) { 5 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 6 | getCLS(onPerfEntry); 7 | getFID(onPerfEntry); 8 | getFCP(onPerfEntry); 9 | getLCP(onPerfEntry); 10 | getTTFB(onPerfEntry); 11 | }); 12 | } 13 | }; 14 | 15 | export default reportWebVitals; 16 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-ts/client/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-ts/src/api/index.ts: -------------------------------------------------------------------------------- 1 | import { Router } from 'express'; 2 | 3 | export default (): Router => { 4 | const app = Router(); 5 | 6 | //TODO: add routes here... 7 | 8 | return app; 9 | }; 10 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-ts/src/loaders/database.ts: -------------------------------------------------------------------------------- 1 | import { Db, MongoClient } from 'mongodb'; 2 | import config from '../config'; 3 | 4 | let db: Db; 5 | 6 | async function initializeClient(): Promise { 7 | const client = await MongoClient.connect(config.databaseURL, { 8 | useNewUrlParser: true, 9 | useUnifiedTopology: true, 10 | ignoreUndefined: true, 11 | }); 12 | 13 | return client.db(); 14 | } 15 | 16 | export default async (): Promise => { 17 | if (!db) { 18 | db = await initializeClient(); 19 | } 20 | 21 | return db; 22 | }; 23 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-ts/src/loaders/index.ts: -------------------------------------------------------------------------------- 1 | import database from './database'; 2 | import express from './express'; 3 | import Logger from './logger'; 4 | import Express from 'express'; 5 | 6 | export default async ({ expressApp }: { expressApp: Express.Application }): Promise => { 7 | await database(); 8 | Logger.info(`✌️ Connection to database successful`); 9 | 10 | await express({ app: expressApp }); 11 | Logger.info('✌️ Express loaded'); 12 | 13 | Logger.info('✅ All modules loaded!'); 14 | }; 15 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-express-ts/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2017", 4 | "allowSyntheticDefaultImports": true, 5 | "experimentalDecorators": true, 6 | "emitDecoratorMetadata": true, 7 | "forceConsistentCasingInFileNames": true, 8 | "moduleResolution": "node", 9 | "module": "commonjs", 10 | "pretty": true, 11 | "sourceMap": true, 12 | "outDir": "./build", 13 | "allowJs": true, 14 | "noEmit": false, 15 | "esModuleInterop": true 16 | }, 17 | "include": ["./src/**/*"], 18 | "exclude": ["node_modules", "tests"] 19 | } 20 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-server-js/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-server-js/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-server-js/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-server-js/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | build 5 | node_modules 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-server-js/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-server-js/client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-server-js/client/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-server-js/client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-bootstrap-server-js/client/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-server-js/client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-bootstrap-server-js/client/public/logo192.png -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-server-js/client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-bootstrap-server-js/client/public/logo512.png -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-server-js/client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-server-js/client/src/index.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.scss'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root'), 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-server-js/client/src/index.scss: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", 4 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-server-js/client/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-server-js/client/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-server-js/docs/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-bootstrap-server-js/docs/cover.png -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-server-js/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server-js", 3 | "version": "0.1.0", 4 | "main": "src/index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "start": "node src/index.js", 8 | "lint": "eslint . --ext .js", 9 | "dev": "nodemon", 10 | "springboard": "cd client && {PKG_MGR} install" 11 | }, 12 | "devDependencies": { 13 | "eslint": "^7.12.1" 14 | }, 15 | "dependencies": { 16 | "nodemon": "^2.0.6" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-server-js/src/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-bootstrap-server-js/src/index.js -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-ts/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-ts/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-ts/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-ts/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | build 5 | node_modules 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-ts/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-ts/client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | 25 | src/index.scss -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-ts/client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-bootstrap-ts/client/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-ts/client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-bootstrap-ts/client/public/logo192.png -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-ts/client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-bootstrap-ts/client/public/logo512.png -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-ts/client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-ts/client/src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.scss'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root'), 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-ts/client/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-ts/client/src/reportWebVitals.ts: -------------------------------------------------------------------------------- 1 | import { ReportHandler } from 'web-vitals'; 2 | 3 | const reportWebVitals: () => void = (onPerfEntry?: ReportHandler) => { 4 | if (onPerfEntry && onPerfEntry instanceof Function) { 5 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 6 | getCLS(onPerfEntry); 7 | getFID(onPerfEntry); 8 | getFCP(onPerfEntry); 9 | getLCP(onPerfEntry); 10 | getTTFB(onPerfEntry); 11 | }); 12 | } 13 | }; 14 | 15 | export default reportWebVitals; 16 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-ts/client/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-ts/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server-ts", 3 | "version": "0.1.0", 4 | "main": "src/index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "start": "node build/index.js", 8 | "lint": "eslint . --ext .ts", 9 | "build": "tsc", 10 | "dev": "tsc-watch --onSuccess 'node ./build/index.js'", 11 | "springboard": "cd client && {PKG_MGR} install" 12 | }, 13 | "devDependencies": { 14 | "eslint": "^7.12.1" 15 | }, 16 | "dependencies": { 17 | "tsc-watch": "^4.2.9", 18 | "typescript": "^4.0.5" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-ts/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-bootstrap-ts/src/index.ts -------------------------------------------------------------------------------- /src/templates/full-stack-bootstrap-ts/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2017", 4 | "allowSyntheticDefaultImports": true, 5 | "experimentalDecorators": true, 6 | "emitDecoratorMetadata": true, 7 | "forceConsistentCasingInFileNames": true, 8 | "moduleResolution": "node", 9 | "module": "commonjs", 10 | "pretty": true, 11 | "sourceMap": true, 12 | "outDir": "./build", 13 | "allowJs": true, 14 | "noEmit": false, 15 | "esModuleInterop": true 16 | }, 17 | "include": ["./src/**/*"], 18 | "exclude": ["node_modules", "tests"] 19 | } 20 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-js/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-js/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-js/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-js/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | node_modules 5 | npm-debug.log* 6 | yarn-debug.log* 7 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-js/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-js/client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-js/client/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-js/client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-css-express-js/client/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-js/client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-css-express-js/client/public/logo192.png -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-js/client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-css-express-js/client/public/logo512.png -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-js/client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-js/client/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-js/client/src/index.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.scss'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root'), 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-js/client/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-js/client/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-js/src/api/index.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | 3 | module.exports = () => { 4 | const app = express.Router(); 5 | 6 | //TODO: add routes here... 7 | 8 | return app; 9 | }; 10 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-js/src/loaders/database.js: -------------------------------------------------------------------------------- 1 | const { MongoClient } = require('mongodb'); 2 | const config = require('../config'); 3 | 4 | let db; 5 | 6 | async function initializeClient() { 7 | const client = await MongoClient.connect(config.databaseURL, { 8 | useNewUrlParser: true, 9 | useUnifiedTopology: true, 10 | ignoreUndefined: true, 11 | }); 12 | 13 | return client.db(); 14 | } 15 | 16 | module.exports = async () => { 17 | if (!db) { 18 | db = await initializeClient(); 19 | } 20 | 21 | return db; 22 | }; 23 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-js/src/loaders/index.js: -------------------------------------------------------------------------------- 1 | const config = require('../config'); 2 | const database = require('./database'); 3 | const express = require('./express'); 4 | const Logger = require('./Logger'); 5 | 6 | module.exports = async ({ expressApp }) => { 7 | await database(); 8 | Logger.info(`✌️ Connection to database successful`); 9 | 10 | await express({ app: expressApp }); 11 | Logger.info('✌️ Express loaded'); 12 | 13 | Logger.info('✅ All modules loaded!'); 14 | }; 15 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-ts/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-ts/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-ts/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-ts/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | build 5 | node_modules 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-ts/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-ts/client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | 25 | src/index.scss -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-ts/client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-css-express-ts/client/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-ts/client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-css-express-ts/client/public/logo192.png -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-ts/client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-css-express-ts/client/public/logo512.png -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-ts/client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-ts/client/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 4 | 'Droid Sans', 'Helvetica Neue', sans-serif; 5 | -webkit-font-smoothing: antialiased; 6 | -moz-osx-font-smoothing: grayscale; 7 | } 8 | 9 | code { 10 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace; 11 | } 12 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-ts/client/src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.css'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root'), 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-ts/client/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-ts/client/src/reportWebVitals.ts: -------------------------------------------------------------------------------- 1 | import { ReportHandler } from 'web-vitals'; 2 | 3 | const reportWebVitals: () => void = (onPerfEntry?: ReportHandler) => { 4 | if (onPerfEntry && onPerfEntry instanceof Function) { 5 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 6 | getCLS(onPerfEntry); 7 | getFID(onPerfEntry); 8 | getFCP(onPerfEntry); 9 | getLCP(onPerfEntry); 10 | getTTFB(onPerfEntry); 11 | }); 12 | } 13 | }; 14 | 15 | export default reportWebVitals; 16 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-ts/client/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-ts/src/api/index.ts: -------------------------------------------------------------------------------- 1 | import { Router } from 'express'; 2 | 3 | export default (): Router => { 4 | const app = Router(); 5 | 6 | //TODO: add routes here... 7 | 8 | return app; 9 | }; 10 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-ts/src/loaders/database.ts: -------------------------------------------------------------------------------- 1 | import { Db, MongoClient } from 'mongodb'; 2 | import config from '../config'; 3 | 4 | let db: Db; 5 | 6 | async function initializeClient(): Promise { 7 | const client = await MongoClient.connect(config.databaseURL, { 8 | useNewUrlParser: true, 9 | useUnifiedTopology: true, 10 | ignoreUndefined: true, 11 | }); 12 | 13 | return client.db(); 14 | } 15 | 16 | export default async (): Promise => { 17 | if (!db) { 18 | db = await initializeClient(); 19 | } 20 | 21 | return db; 22 | }; 23 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-ts/src/loaders/index.ts: -------------------------------------------------------------------------------- 1 | import database from './database'; 2 | import express from './express'; 3 | import Logger from './logger'; 4 | import Express from 'express'; 5 | 6 | export default async ({ expressApp }: { expressApp: Express.Application }): Promise => { 7 | await database(); 8 | Logger.info(`✌️ Connection to database successful`); 9 | 10 | await express({ app: expressApp }); 11 | Logger.info('✌️ Express loaded'); 12 | 13 | Logger.info('✅ All modules loaded!'); 14 | }; 15 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-express-ts/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2017", 4 | "allowSyntheticDefaultImports": true, 5 | "experimentalDecorators": true, 6 | "emitDecoratorMetadata": true, 7 | "forceConsistentCasingInFileNames": true, 8 | "moduleResolution": "node", 9 | "module": "commonjs", 10 | "pretty": true, 11 | "sourceMap": true, 12 | "outDir": "./build", 13 | "allowJs": true, 14 | "noEmit": false, 15 | "esModuleInterop": true 16 | }, 17 | "include": ["./src/**/*"], 18 | "exclude": ["node_modules", "tests"] 19 | } 20 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-server-js/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/full-stack-css-server-js/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/full-stack-css-server-js/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-server-js/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | build 5 | node_modules 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/full-stack-css-server-js/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-server-js/client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-server-js/client/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-server-js/client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-css-server-js/client/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/full-stack-css-server-js/client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-css-server-js/client/public/logo192.png -------------------------------------------------------------------------------- /src/templates/full-stack-css-server-js/client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-css-server-js/client/public/logo512.png -------------------------------------------------------------------------------- /src/templates/full-stack-css-server-js/client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-server-js/client/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-server-js/client/src/index.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.scss'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root'), 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-server-js/client/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-server-js/client/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-server-js/docs/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-css-server-js/docs/cover.png -------------------------------------------------------------------------------- /src/templates/full-stack-css-server-js/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server-js", 3 | "version": "0.1.0", 4 | "main": "src/index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "start": "node src/index.js", 8 | "lint": "eslint . --ext .js", 9 | "dev": "nodemon", 10 | "springboard": "cd client && {PKG_MGR} install" 11 | }, 12 | "devDependencies": { 13 | "eslint": "^7.12.1" 14 | }, 15 | "dependencies": { 16 | "nodemon": "^2.0.6" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-server-js/src/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-css-server-js/src/index.js -------------------------------------------------------------------------------- /src/templates/full-stack-css-ts/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/full-stack-css-ts/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/full-stack-css-ts/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-ts/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | build 5 | node_modules 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/full-stack-css-ts/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-ts/client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | 25 | src/index.scss -------------------------------------------------------------------------------- /src/templates/full-stack-css-ts/client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-css-ts/client/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/full-stack-css-ts/client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-css-ts/client/public/logo192.png -------------------------------------------------------------------------------- /src/templates/full-stack-css-ts/client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-css-ts/client/public/logo512.png -------------------------------------------------------------------------------- /src/templates/full-stack-css-ts/client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-ts/client/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 4 | 'Droid Sans', 'Helvetica Neue', sans-serif; 5 | -webkit-font-smoothing: antialiased; 6 | -moz-osx-font-smoothing: grayscale; 7 | } 8 | 9 | code { 10 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace; 11 | } 12 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-ts/client/src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.css'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root'), 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-ts/client/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-ts/client/src/reportWebVitals.ts: -------------------------------------------------------------------------------- 1 | import { ReportHandler } from 'web-vitals'; 2 | 3 | const reportWebVitals: () => void = (onPerfEntry?: ReportHandler) => { 4 | if (onPerfEntry && onPerfEntry instanceof Function) { 5 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 6 | getCLS(onPerfEntry); 7 | getFID(onPerfEntry); 8 | getFCP(onPerfEntry); 9 | getLCP(onPerfEntry); 10 | getTTFB(onPerfEntry); 11 | }); 12 | } 13 | }; 14 | 15 | export default reportWebVitals; 16 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-ts/client/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-ts/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server-ts", 3 | "version": "0.1.0", 4 | "main": "src/index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "start": "node build/index.js", 8 | "lint": "eslint . --ext .ts", 9 | "build": "tsc", 10 | "dev": "tsc-watch --onSuccess 'node ./build/index.js'", 11 | "springboard": "cd client && {PKG_MGR} install" 12 | }, 13 | "devDependencies": { 14 | "eslint": "^7.12.1" 15 | }, 16 | "dependencies": { 17 | "tsc-watch": "^4.2.9", 18 | "typescript": "^4.0.5" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/templates/full-stack-css-ts/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-css-ts/src/index.ts -------------------------------------------------------------------------------- /src/templates/full-stack-css-ts/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2017", 4 | "allowSyntheticDefaultImports": true, 5 | "experimentalDecorators": true, 6 | "emitDecoratorMetadata": true, 7 | "forceConsistentCasingInFileNames": true, 8 | "moduleResolution": "node", 9 | "module": "commonjs", 10 | "pretty": true, 11 | "sourceMap": true, 12 | "outDir": "./build", 13 | "allowJs": true, 14 | "noEmit": false, 15 | "esModuleInterop": true 16 | }, 17 | "include": ["./src/**/*"], 18 | "exclude": ["node_modules", "tests"] 19 | } 20 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-js/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-js/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-js/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-js/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | node_modules 5 | npm-debug.log* 6 | yarn-debug.log* 7 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-js/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-js/client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-js/client/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-js/client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-scss-express-js/client/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-js/client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-scss-express-js/client/public/logo192.png -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-js/client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-scss-express-js/client/public/logo512.png -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-js/client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-js/client/src/index.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.scss'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root'), 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-js/client/src/index.scss: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-js/client/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-js/client/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-js/src/api/index.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | 3 | module.exports = () => { 4 | const app = express.Router(); 5 | 6 | //TODO: add routes here... 7 | 8 | return app; 9 | }; 10 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-js/src/loaders/database.js: -------------------------------------------------------------------------------- 1 | const { MongoClient } = require('mongodb'); 2 | const config = require('../config'); 3 | 4 | let db; 5 | 6 | async function initializeClient() { 7 | const client = await MongoClient.connect(config.databaseURL, { 8 | useNewUrlParser: true, 9 | useUnifiedTopology: true, 10 | ignoreUndefined: true, 11 | }); 12 | 13 | return client.db(); 14 | } 15 | 16 | module.exports = async () => { 17 | if (!db) { 18 | db = await initializeClient(); 19 | } 20 | 21 | return db; 22 | }; 23 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-js/src/loaders/index.js: -------------------------------------------------------------------------------- 1 | const config = require('../config'); 2 | const database = require('./database'); 3 | const express = require('./express'); 4 | const Logger = require('./Logger'); 5 | 6 | module.exports = async ({ expressApp }) => { 7 | await database(); 8 | Logger.info(`✌️ Connection to database successful`); 9 | 10 | await express({ app: expressApp }); 11 | Logger.info('✌️ Express loaded'); 12 | 13 | Logger.info('✅ All modules loaded!'); 14 | }; 15 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-ts/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-ts/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-ts/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-ts/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | build 5 | node_modules 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-ts/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-ts/client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | 25 | src/index.scss -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-ts/client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-scss-express-ts/client/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-ts/client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-scss-express-ts/client/public/logo192.png -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-ts/client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-scss-express-ts/client/public/logo512.png -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-ts/client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-ts/client/src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.scss'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root'), 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-ts/client/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-ts/client/src/reportWebVitals.ts: -------------------------------------------------------------------------------- 1 | import { ReportHandler } from 'web-vitals'; 2 | 3 | const reportWebVitals: () => void = (onPerfEntry?: ReportHandler) => { 4 | if (onPerfEntry && onPerfEntry instanceof Function) { 5 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 6 | getCLS(onPerfEntry); 7 | getFID(onPerfEntry); 8 | getFCP(onPerfEntry); 9 | getLCP(onPerfEntry); 10 | getTTFB(onPerfEntry); 11 | }); 12 | } 13 | }; 14 | 15 | export default reportWebVitals; 16 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-ts/client/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-ts/src/api/index.ts: -------------------------------------------------------------------------------- 1 | import { Router } from 'express'; 2 | 3 | export default (): Router => { 4 | const app = Router(); 5 | 6 | //TODO: add routes here... 7 | 8 | return app; 9 | }; 10 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-ts/src/loaders/database.ts: -------------------------------------------------------------------------------- 1 | import { Db, MongoClient } from 'mongodb'; 2 | import config from '../config'; 3 | 4 | let db: Db; 5 | 6 | async function initializeClient(): Promise { 7 | const client = await MongoClient.connect(config.databaseURL, { 8 | useNewUrlParser: true, 9 | useUnifiedTopology: true, 10 | ignoreUndefined: true, 11 | }); 12 | 13 | return client.db(); 14 | } 15 | 16 | export default async (): Promise => { 17 | if (!db) { 18 | db = await initializeClient(); 19 | } 20 | 21 | return db; 22 | }; 23 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-ts/src/loaders/index.ts: -------------------------------------------------------------------------------- 1 | import database from './database'; 2 | import express from './express'; 3 | import Logger from './logger'; 4 | import Express from 'express'; 5 | 6 | export default async ({ expressApp }: { expressApp: Express.Application }): Promise => { 7 | await database(); 8 | Logger.info(`✌️ Connection to database successful`); 9 | 10 | await express({ app: expressApp }); 11 | Logger.info('✌️ Express loaded'); 12 | 13 | Logger.info('✅ All modules loaded!'); 14 | }; 15 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-express-ts/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2017", 4 | "allowSyntheticDefaultImports": true, 5 | "experimentalDecorators": true, 6 | "emitDecoratorMetadata": true, 7 | "forceConsistentCasingInFileNames": true, 8 | "moduleResolution": "node", 9 | "module": "commonjs", 10 | "pretty": true, 11 | "sourceMap": true, 12 | "outDir": "./build", 13 | "allowJs": true, 14 | "noEmit": false, 15 | "esModuleInterop": true 16 | }, 17 | "include": ["./src/**/*"], 18 | "exclude": ["node_modules", "tests"] 19 | } 20 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-server-js/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/full-stack-scss-server-js/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/full-stack-scss-server-js/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-server-js/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | build 5 | node_modules 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/full-stack-scss-server-js/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-server-js/client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-server-js/client/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-server-js/client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-scss-server-js/client/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/full-stack-scss-server-js/client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-scss-server-js/client/public/logo192.png -------------------------------------------------------------------------------- /src/templates/full-stack-scss-server-js/client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-scss-server-js/client/public/logo512.png -------------------------------------------------------------------------------- /src/templates/full-stack-scss-server-js/client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-server-js/client/src/index.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.scss'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root'), 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-server-js/client/src/index.scss: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-server-js/client/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-server-js/client/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-server-js/docs/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-scss-server-js/docs/cover.png -------------------------------------------------------------------------------- /src/templates/full-stack-scss-server-js/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server-js", 3 | "version": "0.1.0", 4 | "main": "src/index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "start": "node src/index.js", 8 | "lint": "eslint . --ext .js", 9 | "dev": "nodemon", 10 | "springboard": "cd client && {PKG_MGR} install" 11 | }, 12 | "devDependencies": { 13 | "eslint": "^7.12.1" 14 | }, 15 | "dependencies": { 16 | "nodemon": "^2.0.6" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-server-js/src/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-scss-server-js/src/index.js -------------------------------------------------------------------------------- /src/templates/full-stack-scss-ts/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/full-stack-scss-ts/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/full-stack-scss-ts/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-ts/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | build 5 | node_modules 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/full-stack-scss-ts/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-ts/client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | 25 | src/index.scss -------------------------------------------------------------------------------- /src/templates/full-stack-scss-ts/client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-scss-ts/client/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/full-stack-scss-ts/client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-scss-ts/client/public/logo192.png -------------------------------------------------------------------------------- /src/templates/full-stack-scss-ts/client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-scss-ts/client/public/logo512.png -------------------------------------------------------------------------------- /src/templates/full-stack-scss-ts/client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-ts/client/src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.scss'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root'), 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-ts/client/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-ts/client/src/reportWebVitals.ts: -------------------------------------------------------------------------------- 1 | import { ReportHandler } from 'web-vitals'; 2 | 3 | const reportWebVitals: () => void = (onPerfEntry?: ReportHandler) => { 4 | if (onPerfEntry && onPerfEntry instanceof Function) { 5 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 6 | getCLS(onPerfEntry); 7 | getFID(onPerfEntry); 8 | getFCP(onPerfEntry); 9 | getLCP(onPerfEntry); 10 | getTTFB(onPerfEntry); 11 | }); 12 | } 13 | }; 14 | 15 | export default reportWebVitals; 16 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-ts/client/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-ts/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server-ts", 3 | "version": "0.1.0", 4 | "main": "src/index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "start": "node build/index.js", 8 | "lint": "eslint . --ext .ts", 9 | "build": "tsc", 10 | "dev": "tsc-watch --onSuccess 'node ./build/index.js'", 11 | "springboard": "cd client && {PKG_MGR} install" 12 | }, 13 | "devDependencies": { 14 | "eslint": "^7.12.1" 15 | }, 16 | "dependencies": { 17 | "tsc-watch": "^4.2.9", 18 | "typescript": "^4.0.5" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/templates/full-stack-scss-ts/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-scss-ts/src/index.ts -------------------------------------------------------------------------------- /src/templates/full-stack-scss-ts/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2017", 4 | "allowSyntheticDefaultImports": true, 5 | "experimentalDecorators": true, 6 | "emitDecoratorMetadata": true, 7 | "forceConsistentCasingInFileNames": true, 8 | "moduleResolution": "node", 9 | "module": "commonjs", 10 | "pretty": true, 11 | "sourceMap": true, 12 | "outDir": "./build", 13 | "allowJs": true, 14 | "noEmit": false, 15 | "esModuleInterop": true 16 | }, 17 | "include": ["./src/**/*"], 18 | "exclude": ["node_modules", "tests"] 19 | } 20 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-js/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-js/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-js/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-js/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | node_modules 5 | npm-debug.log* 6 | yarn-debug.log* 7 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-js/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-js/client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-js/client/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-js/client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-styled-components-express-js/client/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-js/client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-styled-components-express-js/client/public/logo192.png -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-js/client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-styled-components-express-js/client/public/logo512.png -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-js/client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-js/client/src/index.scss: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-js/client/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-js/client/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-js/src/api/index.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | 3 | module.exports = () => { 4 | const app = express.Router(); 5 | 6 | //TODO: add routes here... 7 | 8 | return app; 9 | }; 10 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-js/src/loaders/database.js: -------------------------------------------------------------------------------- 1 | const { MongoClient } = require('mongodb'); 2 | const config = require('../config'); 3 | 4 | let db; 5 | 6 | async function initializeClient() { 7 | const client = await MongoClient.connect(config.databaseURL, { 8 | useNewUrlParser: true, 9 | useUnifiedTopology: true, 10 | ignoreUndefined: true, 11 | }); 12 | 13 | return client.db(); 14 | } 15 | 16 | module.exports = async () => { 17 | if (!db) { 18 | db = await initializeClient(); 19 | } 20 | 21 | return db; 22 | }; 23 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-js/src/loaders/index.js: -------------------------------------------------------------------------------- 1 | const config = require('../config'); 2 | const database = require('./database'); 3 | const express = require('./express'); 4 | const Logger = require('./Logger'); 5 | 6 | module.exports = async ({ expressApp }) => { 7 | await database(); 8 | Logger.info(`✌️ Connection to database successful`); 9 | 10 | await express({ app: expressApp }); 11 | Logger.info('✌️ Express loaded'); 12 | 13 | Logger.info('✅ All modules loaded!'); 14 | }; 15 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-ts/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-ts/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-ts/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-ts/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | build 5 | node_modules 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-ts/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-ts/client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | 25 | src/index.scss -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-ts/client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-styled-components-express-ts/client/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-ts/client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-styled-components-express-ts/client/public/logo192.png -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-ts/client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-styled-components-express-ts/client/public/logo512.png -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-ts/client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-ts/client/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-ts/client/src/reportWebVitals.ts: -------------------------------------------------------------------------------- 1 | import { ReportHandler } from 'web-vitals'; 2 | 3 | const reportWebVitals: () => void = (onPerfEntry?: ReportHandler) => { 4 | if (onPerfEntry && onPerfEntry instanceof Function) { 5 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 6 | getCLS(onPerfEntry); 7 | getFID(onPerfEntry); 8 | getFCP(onPerfEntry); 9 | getLCP(onPerfEntry); 10 | getTTFB(onPerfEntry); 11 | }); 12 | } 13 | }; 14 | 15 | export default reportWebVitals; 16 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-ts/client/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-ts/src/api/index.ts: -------------------------------------------------------------------------------- 1 | import { Router } from 'express'; 2 | 3 | export default (): Router => { 4 | const app = Router(); 5 | 6 | //TODO: add routes here... 7 | 8 | return app; 9 | }; 10 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-ts/src/loaders/database.ts: -------------------------------------------------------------------------------- 1 | import { Db, MongoClient } from 'mongodb'; 2 | import config from '../config'; 3 | 4 | let db: Db; 5 | 6 | async function initializeClient(): Promise { 7 | const client = await MongoClient.connect(config.databaseURL, { 8 | useNewUrlParser: true, 9 | useUnifiedTopology: true, 10 | ignoreUndefined: true, 11 | }); 12 | 13 | return client.db(); 14 | } 15 | 16 | export default async (): Promise => { 17 | if (!db) { 18 | db = await initializeClient(); 19 | } 20 | 21 | return db; 22 | }; 23 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-ts/src/loaders/index.ts: -------------------------------------------------------------------------------- 1 | import database from './database'; 2 | import express from './express'; 3 | import Logger from './logger'; 4 | import Express from 'express'; 5 | 6 | export default async ({ expressApp }: { expressApp: Express.Application }): Promise => { 7 | await database(); 8 | Logger.info(`✌️ Connection to database successful`); 9 | 10 | await express({ app: expressApp }); 11 | Logger.info('✌️ Express loaded'); 12 | 13 | Logger.info('✅ All modules loaded!'); 14 | }; 15 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-express-ts/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2017", 4 | "allowSyntheticDefaultImports": true, 5 | "experimentalDecorators": true, 6 | "emitDecoratorMetadata": true, 7 | "forceConsistentCasingInFileNames": true, 8 | "moduleResolution": "node", 9 | "module": "commonjs", 10 | "pretty": true, 11 | "sourceMap": true, 12 | "outDir": "./build", 13 | "allowJs": true, 14 | "noEmit": false, 15 | "esModuleInterop": true 16 | }, 17 | "include": ["./src/**/*"], 18 | "exclude": ["node_modules", "tests"] 19 | } 20 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-server-js/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-server-js/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-server-js/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-server-js/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | build 5 | node_modules 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-server-js/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-server-js/client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-server-js/client/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-server-js/client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-styled-components-server-js/client/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-server-js/client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-styled-components-server-js/client/public/logo192.png -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-server-js/client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-styled-components-server-js/client/public/logo512.png -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-server-js/client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-server-js/client/src/index.scss: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-server-js/client/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-server-js/client/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-server-js/docs/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-styled-components-server-js/docs/cover.png -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-server-js/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server-js", 3 | "version": "0.1.0", 4 | "main": "src/index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "start": "node src/index.js", 8 | "lint": "eslint . --ext .js", 9 | "dev": "nodemon", 10 | "springboard": "cd client && {PKG_MGR} install" 11 | }, 12 | "devDependencies": { 13 | "eslint": "^7.12.1" 14 | }, 15 | "dependencies": { 16 | "nodemon": "^2.0.6" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-server-js/src/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-styled-components-server-js/src/index.js -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-ts/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-ts/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-ts/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-ts/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | build 5 | node_modules 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-ts/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-ts/client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | 25 | src/index.scss -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-ts/client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-styled-components-ts/client/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-ts/client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-styled-components-ts/client/public/logo192.png -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-ts/client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-styled-components-ts/client/public/logo512.png -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-ts/client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-ts/client/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-ts/client/src/reportWebVitals.ts: -------------------------------------------------------------------------------- 1 | import { ReportHandler } from 'web-vitals'; 2 | 3 | const reportWebVitals: () => void = (onPerfEntry?: ReportHandler) => { 4 | if (onPerfEntry && onPerfEntry instanceof Function) { 5 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 6 | getCLS(onPerfEntry); 7 | getFID(onPerfEntry); 8 | getFCP(onPerfEntry); 9 | getLCP(onPerfEntry); 10 | getTTFB(onPerfEntry); 11 | }); 12 | } 13 | }; 14 | 15 | export default reportWebVitals; 16 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-ts/client/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-ts/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server-ts", 3 | "version": "0.1.0", 4 | "main": "src/index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "start": "node build/index.js", 8 | "lint": "eslint . --ext .ts", 9 | "build": "tsc", 10 | "dev": "tsc-watch --onSuccess 'node ./build/index.js'", 11 | "springboard": "cd client && {PKG_MGR} install" 12 | }, 13 | "devDependencies": { 14 | "eslint": "^7.12.1" 15 | }, 16 | "dependencies": { 17 | "tsc-watch": "^4.2.9", 18 | "typescript": "^4.0.5" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-ts/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-styled-components-ts/src/index.ts -------------------------------------------------------------------------------- /src/templates/full-stack-styled-components-ts/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2017", 4 | "allowSyntheticDefaultImports": true, 5 | "experimentalDecorators": true, 6 | "emitDecoratorMetadata": true, 7 | "forceConsistentCasingInFileNames": true, 8 | "moduleResolution": "node", 9 | "module": "commonjs", 10 | "pretty": true, 11 | "sourceMap": true, 12 | "outDir": "./build", 13 | "allowJs": true, 14 | "noEmit": false, 15 | "esModuleInterop": true 16 | }, 17 | "include": ["./src/**/*"], 18 | "exclude": ["node_modules", "tests"] 19 | } 20 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-express-js/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-express-js/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-express-js/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-express-js/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | node_modules 5 | npm-debug.log* 6 | yarn-debug.log* 7 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-express-js/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-express-js/client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | 25 | src/index.scss -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-express-js/client/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-express-js/client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-tailwind-express-js/client/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-express-js/client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-tailwind-express-js/client/public/logo192.png -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-express-js/client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-tailwind-express-js/client/public/logo512.png -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-express-js/client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-express-js/client/src/index.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.scss'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root'), 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-express-js/client/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-express-js/client/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-express-js/client/src/tailwind.style.scss: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | body { 6 | margin: 0; 7 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", 8 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", 9 | sans-serif; 10 | -webkit-font-smoothing: antialiased; 11 | -moz-osx-font-smoothing: grayscale; 12 | } 13 | 14 | code { 15 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", 16 | monospace; 17 | } 18 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-express-js/client/tailwind.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | future: {}, 3 | purge: [], 4 | darkMode: false, 5 | theme: { 6 | extend: {}, 7 | }, 8 | variants: {}, 9 | plugins: [], 10 | }; 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-express-js/src/api/index.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | 3 | module.exports = () => { 4 | const app = express.Router(); 5 | 6 | //TODO: add routes here... 7 | 8 | return app; 9 | }; 10 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-express-js/src/loaders/database.js: -------------------------------------------------------------------------------- 1 | const { MongoClient } = require('mongodb'); 2 | const config = require('../config'); 3 | 4 | let db; 5 | 6 | async function initializeClient() { 7 | const client = await MongoClient.connect(config.databaseURL, { 8 | useNewUrlParser: true, 9 | useUnifiedTopology: true, 10 | ignoreUndefined: true, 11 | }); 12 | 13 | return client.db(); 14 | } 15 | 16 | module.exports = async () => { 17 | if (!db) { 18 | db = await initializeClient(); 19 | } 20 | 21 | return db; 22 | }; 23 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-express-js/src/loaders/index.js: -------------------------------------------------------------------------------- 1 | const config = require('../config'); 2 | const database = require('./database'); 3 | const express = require('./express'); 4 | const Logger = require('./Logger'); 5 | 6 | module.exports = async ({ expressApp }) => { 7 | await database(); 8 | Logger.info(`✌️ Connection to database successful`); 9 | 10 | await express({ app: expressApp }); 11 | Logger.info('✌️ Express loaded'); 12 | 13 | Logger.info('✅ All modules loaded!'); 14 | }; 15 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-server-js/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-server-js/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-server-js/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-server-js/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | build 5 | node_modules 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-server-js/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-server-js/client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | 25 | src/index.scss -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-server-js/client/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-server-js/client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-tailwind-server-js/client/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-server-js/client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-tailwind-server-js/client/public/logo192.png -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-server-js/client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-tailwind-server-js/client/public/logo512.png -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-server-js/client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-server-js/client/src/index.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.scss'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root'), 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-server-js/client/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry); 5 | getFID(onPerfEntry); 6 | getFCP(onPerfEntry); 7 | getLCP(onPerfEntry); 8 | getTTFB(onPerfEntry); 9 | }); 10 | } 11 | }; 12 | 13 | export default reportWebVitals; 14 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-server-js/client/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-server-js/client/src/tailwind.style.scss: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | body { 6 | margin: 0; 7 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", 8 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", 9 | sans-serif; 10 | -webkit-font-smoothing: antialiased; 11 | -moz-osx-font-smoothing: grayscale; 12 | } 13 | 14 | code { 15 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", 16 | monospace; 17 | } 18 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-server-js/client/tailwind.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | future: {}, 3 | purge: [], 4 | darkMode: false, 5 | theme: { 6 | extend: {}, 7 | }, 8 | variants: {}, 9 | plugins: [], 10 | }; 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-server-js/docs/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-tailwind-server-js/docs/cover.png -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-server-js/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server-js", 3 | "version": "0.1.0", 4 | "main": "src/index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "start": "node src/index.js", 8 | "lint": "eslint . --ext .js", 9 | "dev": "nodemon", 10 | "springboard": "cd client && {PKG_MGR} install" 11 | }, 12 | "devDependencies": { 13 | "eslint": "^7.12.1" 14 | }, 15 | "dependencies": { 16 | "nodemon": "^2.0.6" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-server-js/src/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-tailwind-server-js/src/index.js -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-ts/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-ts/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-ts/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-ts/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | build 5 | node_modules 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-ts/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-ts/client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | 25 | src/index.scss -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-ts/client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-tailwind-ts/client/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-ts/client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-tailwind-ts/client/public/logo192.png -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-ts/client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-tailwind-ts/client/public/logo512.png -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-ts/client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-ts/client/src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.scss'; 4 | import App from './App'; 5 | import reportWebVitals from './reportWebVitals'; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root'), 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-ts/client/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-ts/client/src/reportWebVitals.ts: -------------------------------------------------------------------------------- 1 | import { ReportHandler } from 'web-vitals'; 2 | 3 | const reportWebVitals: () => void = (onPerfEntry?: ReportHandler) => { 4 | if (onPerfEntry && onPerfEntry instanceof Function) { 5 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 6 | getCLS(onPerfEntry); 7 | getFID(onPerfEntry); 8 | getFCP(onPerfEntry); 9 | getLCP(onPerfEntry); 10 | getTTFB(onPerfEntry); 11 | }); 12 | } 13 | }; 14 | 15 | export default reportWebVitals; 16 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-ts/client/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-ts/client/src/tailwind.style.scss: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | body { 6 | margin: 0; 7 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", 8 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", 9 | sans-serif; 10 | -webkit-font-smoothing: antialiased; 11 | -moz-osx-font-smoothing: grayscale; 12 | } 13 | 14 | code { 15 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", 16 | monospace; 17 | } 18 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-ts/client/tailwind.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | future: {}, 3 | purge: [], 4 | darkMode: false, 5 | theme: { 6 | extend: {}, 7 | }, 8 | variants: {}, 9 | plugins: [], 10 | }; 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-ts/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server-ts", 3 | "version": "0.1.0", 4 | "main": "src/index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "start": "node build/index.js", 8 | "lint": "eslint . --ext .ts", 9 | "build": "tsc", 10 | "dev": "tsc-watch --onSuccess 'node ./build/index.js'", 11 | "springboard": "cd client && {PKG_MGR} install" 12 | }, 13 | "devDependencies": { 14 | "eslint": "^7.12.1" 15 | }, 16 | "dependencies": { 17 | "tsc-watch": "^4.2.9", 18 | "typescript": "^4.0.5" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-ts/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-tailwind-ts/src/index.ts -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-ts/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2017", 4 | "allowSyntheticDefaultImports": true, 5 | "experimentalDecorators": true, 6 | "emitDecoratorMetadata": true, 7 | "forceConsistentCasingInFileNames": true, 8 | "moduleResolution": "node", 9 | "module": "commonjs", 10 | "pretty": true, 11 | "sourceMap": true, 12 | "outDir": "./build", 13 | "allowJs": true, 14 | "noEmit": false, 15 | "esModuleInterop": true 16 | }, 17 | "include": ["./src/**/*"], 18 | "exclude": ["node_modules", "tests"] 19 | } 20 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-tsx-express-ts/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-tsx-express-ts/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-tsx-express-ts/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-tsx-express-ts/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | build 5 | node_modules 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-tsx-express-ts/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-tsx-express-ts/client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | 25 | src/index.scss -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-tsx-express-ts/client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-tailwind-tsx-express-ts/client/public/favicon.ico -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-tsx-express-ts/client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-tailwind-tsx-express-ts/client/public/logo192.png -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-tsx-express-ts/client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/full-stack-tailwind-tsx-express-ts/client/public/logo512.png -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-tsx-express-ts/client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-tsx-express-ts/client/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-tsx-express-ts/client/src/reportWebVitals.ts: -------------------------------------------------------------------------------- 1 | import { ReportHandler } from 'web-vitals'; 2 | 3 | const reportWebVitals: () => void = (onPerfEntry?: ReportHandler) => { 4 | if (onPerfEntry && onPerfEntry instanceof Function) { 5 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 6 | getCLS(onPerfEntry); 7 | getFID(onPerfEntry); 8 | getFCP(onPerfEntry); 9 | getLCP(onPerfEntry); 10 | getTTFB(onPerfEntry); 11 | }); 12 | } 13 | }; 14 | 15 | export default reportWebVitals; 16 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-tsx-express-ts/client/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-tsx-express-ts/client/src/tailwind.style.scss: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | body { 6 | margin: 0; 7 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", 8 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", 9 | sans-serif; 10 | -webkit-font-smoothing: antialiased; 11 | -moz-osx-font-smoothing: grayscale; 12 | } 13 | 14 | code { 15 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", 16 | monospace; 17 | } 18 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-tsx-express-ts/client/tailwind.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | future: {}, 3 | purge: [], 4 | darkMode: false, 5 | theme: { 6 | extend: {}, 7 | }, 8 | variants: {}, 9 | plugins: [], 10 | }; 11 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-tsx-express-ts/src/api/index.ts: -------------------------------------------------------------------------------- 1 | import { Router } from 'express'; 2 | 3 | export default (): Router => { 4 | const app = Router(); 5 | 6 | //TODO: add routes here... 7 | 8 | return app; 9 | }; 10 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-tsx-express-ts/src/loaders/database.ts: -------------------------------------------------------------------------------- 1 | import { Db, MongoClient } from 'mongodb'; 2 | import config from '../config'; 3 | 4 | let db: Db; 5 | 6 | async function initializeClient(): Promise { 7 | const client = await MongoClient.connect(config.databaseURL, { 8 | useNewUrlParser: true, 9 | useUnifiedTopology: true, 10 | ignoreUndefined: true, 11 | }); 12 | 13 | return client.db(); 14 | } 15 | 16 | export default async (): Promise => { 17 | if (!db) { 18 | db = await initializeClient(); 19 | } 20 | 21 | return db; 22 | }; 23 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-tsx-express-ts/src/loaders/index.ts: -------------------------------------------------------------------------------- 1 | import config from '../config'; 2 | import database from './database'; 3 | import express from './express'; 4 | import Logger from './logger'; 5 | import Express from 'express'; 6 | 7 | export default async ({ expressApp }: { expressApp: Express.Application }): Promise => { 8 | await database(); 9 | Logger.info(`✌️ Connection to database successful`); 10 | 11 | await express({ app: expressApp }); 12 | Logger.info('✌️ Express loaded'); 13 | 14 | Logger.info('✅ All modules loaded!'); 15 | }; 16 | -------------------------------------------------------------------------------- /src/templates/full-stack-tailwind-tsx-express-ts/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2017", 4 | "allowSyntheticDefaultImports": true, 5 | "experimentalDecorators": true, 6 | "emitDecoratorMetadata": true, 7 | "forceConsistentCasingInFileNames": true, 8 | "moduleResolution": "node", 9 | "module": "commonjs", 10 | "pretty": true, 11 | "sourceMap": true, 12 | "outDir": "./build", 13 | "allowJs": true, 14 | "noEmit": false, 15 | "esModuleInterop": true 16 | }, 17 | "include": ["./src/**/*"], 18 | "exclude": ["node_modules", "tests"] 19 | } 20 | -------------------------------------------------------------------------------- /src/templates/server-express-js/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/server-express-js/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/server-express-js/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/server-express-js/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | node_modules 5 | npm-debug.log* 6 | yarn-debug.log* 7 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/server-express-js/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/server-express-js/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server-express-js", 3 | "version": "0.1.0", 4 | "main": "src/index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "start": "node src/index.js", 8 | "lint": "eslint . --ext .js", 9 | "dev": "nodemon" 10 | }, 11 | "devDependencies": { 12 | "eslint": "^7.12.1" 13 | }, 14 | "dependencies": { 15 | "cors": "^2.8.5", 16 | "dotenv": "^8.2.0", 17 | "express": "^4.17.1", 18 | "helmet": "^4.1.1", 19 | "mongodb": "^3.6.2", 20 | "nodemon": "^2.0.6", 21 | "winston": "^3.3.3" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/templates/server-express-js/src/api/index.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | 3 | module.exports = () => { 4 | const app = express.Router(); 5 | 6 | //TODO: add routes here... 7 | 8 | return app; 9 | }; 10 | -------------------------------------------------------------------------------- /src/templates/server-express-js/src/loaders/database.js: -------------------------------------------------------------------------------- 1 | const { MongoClient } = require('mongodb'); 2 | const config = require('../config'); 3 | 4 | let db; 5 | 6 | async function initializeClient() { 7 | const client = await MongoClient.connect(config.databaseURL, { 8 | useNewUrlParser: true, 9 | useUnifiedTopology: true, 10 | ignoreUndefined: true, 11 | }); 12 | 13 | return client.db(); 14 | } 15 | 16 | module.exports = async () => { 17 | if (!db) { 18 | db = await initializeClient(); 19 | } 20 | 21 | return db; 22 | }; 23 | -------------------------------------------------------------------------------- /src/templates/server-express-js/src/loaders/index.js: -------------------------------------------------------------------------------- 1 | const config = require('../config'); 2 | const database = require('./database'); 3 | const express = require('./express'); 4 | const Logger = require('./Logger'); 5 | 6 | module.exports = async ({ expressApp }) => { 7 | await database(); 8 | Logger.info(`✌️ Connection to database successful`); 9 | 10 | await express({ app: expressApp }); 11 | Logger.info('✌️ Express loaded'); 12 | 13 | Logger.info('✅ All modules loaded!'); 14 | }; 15 | -------------------------------------------------------------------------------- /src/templates/server-express-ts/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/server-express-ts/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/server-express-ts/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/server-express-ts/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | build 5 | node_modules 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/server-express-ts/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/server-express-ts/src/api/index.ts: -------------------------------------------------------------------------------- 1 | import { Router } from 'express'; 2 | 3 | export default (): Router => { 4 | const app = Router(); 5 | 6 | //TODO: add routes here... 7 | 8 | return app; 9 | }; 10 | -------------------------------------------------------------------------------- /src/templates/server-express-ts/src/loaders/database.ts: -------------------------------------------------------------------------------- 1 | import { Db, MongoClient } from 'mongodb'; 2 | import config from '../config'; 3 | 4 | let db: Db; 5 | 6 | async function initializeClient(): Promise { 7 | const client = await MongoClient.connect(config.databaseURL, { 8 | useNewUrlParser: true, 9 | useUnifiedTopology: true, 10 | ignoreUndefined: true, 11 | }); 12 | 13 | return client.db(); 14 | } 15 | 16 | export default async (): Promise => { 17 | if (!db) { 18 | db = await initializeClient(); 19 | } 20 | 21 | return db; 22 | }; 23 | -------------------------------------------------------------------------------- /src/templates/server-express-ts/src/loaders/index.ts: -------------------------------------------------------------------------------- 1 | import config from '../config'; 2 | import database from './database'; 3 | import express from './express'; 4 | import Logger from './logger'; 5 | import Express from 'express'; 6 | 7 | export default async ({ expressApp }: { expressApp: Express.Application }): Promise => { 8 | await database(); 9 | Logger.info(`✌️ Connection to database successful`); 10 | 11 | await express({ app: expressApp }); 12 | Logger.info('✌️ Express loaded'); 13 | 14 | Logger.info('✅ All modules loaded!'); 15 | }; 16 | -------------------------------------------------------------------------------- /src/templates/server-express-ts/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2017", 4 | "allowSyntheticDefaultImports": true, 5 | "experimentalDecorators": true, 6 | "emitDecoratorMetadata": true, 7 | "forceConsistentCasingInFileNames": true, 8 | "moduleResolution": "node", 9 | "module": "commonjs", 10 | "pretty": true, 11 | "sourceMap": true, 12 | "outDir": "./build", 13 | "allowJs": true, 14 | "noEmit": false, 15 | "esModuleInterop": true 16 | }, 17 | "include": ["./src/**/*"], 18 | "exclude": ["node_modules", "tests"] 19 | } 20 | -------------------------------------------------------------------------------- /src/templates/server-js/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/server-js/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/server-js/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/server-js/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | build 5 | node_modules 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/server-js/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/server-js/docs/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/server-js/docs/cover.png -------------------------------------------------------------------------------- /src/templates/server-js/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server-js", 3 | "version": "0.1.0", 4 | "main": "src/index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "start": "node src/index.js", 8 | "lint": "eslint . --ext .js", 9 | "dev": "nodemon" 10 | }, 11 | "devDependencies": { 12 | "eslint": "^7.12.1" 13 | }, 14 | "dependencies": { 15 | "nodemon": "^2.0.6" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/templates/server-js/src/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/server-js/src/index.js -------------------------------------------------------------------------------- /src/templates/server-ts/.env.example: -------------------------------------------------------------------------------- 1 | JWT_SECRET ='m@c-@nd-c#eese' 2 | MONGODB_URI='mongodb://localhost/springboard' 3 | PORT=3000 4 | LOG_LEVEL='debug' -------------------------------------------------------------------------------- /src/templates/server-ts/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist -------------------------------------------------------------------------------- /src/templates/server-ts/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "extends": [ 6 | "eslint:recommended", 7 | "plugin:@typescript-eslint/eslint-recommended", 8 | "plugin:@typescript-eslint/recommended" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /src/templates/server-ts/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | !.env.example 4 | build 5 | node_modules 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* -------------------------------------------------------------------------------- /src/templates/server-ts/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": true, 5 | "printWidth": 120, 6 | "tabWidth": 2, 7 | "arrowParens": "avoid" 8 | } 9 | -------------------------------------------------------------------------------- /src/templates/server-ts/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "server-ts", 3 | "version": "0.1.0", 4 | "main": "src/index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "start": "node build/index.js", 8 | "lint": "eslint . --ext .ts", 9 | "build": "tsc", 10 | "dev": "tsc-watch --onSuccess 'node ./build/index.js'" 11 | }, 12 | "devDependencies": { 13 | "eslint": "^7.12.1" 14 | }, 15 | "dependencies": { 16 | "tsc-watch": "^4.2.9", 17 | "typescript": "^4.0.5" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/templates/server-ts/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srm-kzilla/springboard/50ca0fdeb4d700d7c26f11e5b0d6e8edc5fe99ca/src/templates/server-ts/src/index.ts -------------------------------------------------------------------------------- /src/templates/server-ts/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2017", 4 | "allowSyntheticDefaultImports": true, 5 | "experimentalDecorators": true, 6 | "emitDecoratorMetadata": true, 7 | "forceConsistentCasingInFileNames": true, 8 | "moduleResolution": "node", 9 | "module": "commonjs", 10 | "pretty": true, 11 | "sourceMap": true, 12 | "outDir": "./build", 13 | "allowJs": true, 14 | "noEmit": false, 15 | "esModuleInterop": true 16 | }, 17 | "include": ["./src/**/*"], 18 | "exclude": ["node_modules", "tests"] 19 | } 20 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "module": "commonjs", 5 | "declaration": true, 6 | "outDir": "./build", 7 | "removeComments": true, 8 | "strict": true, 9 | "esModuleInterop": true, 10 | "skipLibCheck": true, 11 | "forceConsistentCasingInFileNames": true, 12 | "allowJs": true, 13 | "resolveJsonModule": true 14 | }, 15 | "exclude": ["./src/templates/**/*"], 16 | "include": ["./src/**/*"] 17 | } 18 | --------------------------------------------------------------------------------