Skip to content

Commit

Permalink
init
Browse files Browse the repository at this point in the history
  • Loading branch information
thangmfv committed Jul 2, 2024
1 parent cfe0f80 commit f697b58
Show file tree
Hide file tree
Showing 105 changed files with 17,270 additions and 1 deletion.
16 changes: 16 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# editorconfig.org
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false

[*.snap]
trim_trailing_whitespace = false
9 changes: 9 additions & 0 deletions .env.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
APP_ENV=development

# MFID
NEXT_PUBLIC_MFID_BASE_URL=https://mfid-web-ct-shared.idev.test.musubu.co.in
NEXT_PUBLIC_MFID_CLIENT_ID=xib_DXl8NltVEmgKR_6Qg_vHA_IORQUf6KWVAJR92JI
NEXT_PUBLIC_MFID_CLIENT_SECRET=0IzTo8M4CWyVfA2GCO9ImiIbsGH3ZlRI44GOnpcWoKA # MSW only

# API
NEXT_PUBLIC_API_BASE_URL=http://localhost:30000/api/v1
60 changes: 60 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"env": {
"browser": true,
"es2021": true
},
"extends": ["plugin:@typescript-eslint/recommended", "next", "next/core-web-vitals", "prettier"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaFeatures": {
"jsx": true
},
"ecmaVersion": 12,
"sourceType": "module"
},
"plugins": ["@typescript-eslint"],
"rules": {
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/explicit-module-boundary-types": 0,
"@typescript-eslint/no-non-null-assertion": "off",
"@typescript-eslint/no-unused-vars": [
"error",
{
"vars": "all",
"args": "after-used",
"ignoreRestSiblings": true,
"argsIgnorePattern": "^_",
"varsIgnorePattern": "^_"
}
],
"@typescript-eslint/no-use-before-define": 0,
"@typescript-eslint/no-namespace": 0,
"@typescript-eslint/no-var-requires": 0,
"no-console": "warn",
"no-var": "error",
"prettier/prettier": [
0,
{
"endOfLine": "auto"
}
],
"comma-dangle": "error",
"eol-last": "error",
"max-len": [
"error",
{
"code": 120,
"ignoreComments": true,
"ignoreTrailingComments": true,
"ignoreTemplateLiterals": true,
"ignoreRegExpLiterals": true,
"ignoreStrings": true,
"ignoreUrls": true
}
],
"max-params": ["error", 4],
"max-depth": ["error", 4],
"@next/next/no-sync-scripts": "off"
}
}
42 changes: 42 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js
.yarn/install-state.gz

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# local env files
.env*.local
.env
.env.*
!.env.sample

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts

# sonarqube
/sonarqube-report
21 changes: 21 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
node_modules
build
public
coverage
.eslintrc
.prettierrc.js
PULL_REQUEST_TEMPLATE.md
README.md
.vscode
.next
tsconfig.json
yarn.lock
package-lock.json
jest.config.js
.circleci
.env-sample
.env.development
.env.test
.env
docker-compose.yml
src/components/Icons.tsx
24 changes: 24 additions & 0 deletions .prettierrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
module.exports = {
printWidth: 120,
trailingComma: 'none',
tabWidth: 2,
semi: false,
singleQuote: true,
bracketSpacing: true,
bracketSameLine: false,
arrowParens: 'avoid',
endOfLine: 'lf',
proseWrap: 'preserve',
quoteProps: 'as-needed',
useTabs: false,
htmlWhitespaceSensitivity: 'css',
plugins: ["@trivago/prettier-plugin-sort-imports", "prettier-plugin-sort-json"],
jsonRecursiveSort: true,
importOrder: [
'^@core/(.*)$',
'(^[./])|^@/(components|config|constants|helpers|hooks|i18n|lib|types|utils)/(.*)$',
'.(json)$',
],
importOrderSeparation: true,
importOrderSortSpecifiers: true
}
31 changes: 31 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Next.js: debug server-side",
"type": "node-terminal",
"request": "launch",
"command": "yarn dev"
},
{
"name": "Next.js: debug client-side",
"type": "chrome",
"request": "launch",
"url": "http://localhost:3000"
},
{
"name": "Next.js: debug full stack",
"type": "node-terminal",
"request": "launch",
"command": "yarn dev",
"serverReadyAction": {
"pattern": "- Local:.+(https?://.+)",
"uriFormat": "%s",
"action": "debugWithChrome"
}
}
]
}
5 changes: 5 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"files.insertFinalNewline": true,
"editor.formatOnSave": true,
"css.lint.unknownAtRules": "ignore"
}
11 changes: 11 additions & 0 deletions PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Why this PR is needed
- <it's often JIRA task link or link to discussion on Kibela/Confluence/Slack or other place>
- [FEK-xxx](https://moneyforward.atlassian.net/browse/FEK-xxx)

# What I did in this PR
- <which changes or you can use commit message>

# Checklist

- [ ] I have written enough tests
- [ ] I have tested on my local environment
37 changes: 36 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,36 @@
# frontend-starter-kit
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).

## Getting Started

First, run the development server:

```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```

Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.

This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.

## Learn More

To learn more about Next.js, take a look at the following resources:

- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.

You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!

## Deploy on Vercel

The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.

Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
16 changes: 16 additions & 0 deletions components.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema.json",
"aliases": {
"components": "@/components",
"utils": "@/lib/utils"
},
"rsc": true,
"style": "new-york",
"tailwind": {
"baseColor": "slate",
"config": "tailwind.config.ts",
"css": "app/styles/globals.css",
"cssVariables": true
},
"tsx": true
}
11 changes: 11 additions & 0 deletions env.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
namespace NodeJS {
interface ProcessEnv {
APP_ENV: 'development' | 'staging' | 'production'

NEXT_PUBLIC_MFID_BASE_URL: string
NEXT_PUBLIC_MFID_CLIENT_ID: string
NEXT_PUBLIC_MFID_CLIENT_SECRET: string // MSW only

NEXT_PUBLIC_API_BASE_URL: string
}
}
23 changes: 23 additions & 0 deletions globals.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import { ObjectSchema } from 'yup'

declare module 'yup' {
interface ObjectSchema {
dayjs(message: string): ObjectSchema<Dayjs>
pastTime(message: string): ObjectSchema<Dayjs>
}
}

declare module 'iron-session' {
interface CookieStore {
get: (name: string) =>
| {
name: string
value: string
}
| undefined
set: {
(name: string, value: string, cookie?: Partial<ResponseCookie>): void
(options: ResponseCookie): void
}
}
}
Loading

0 comments on commit f697b58

Please sign in to comment.