Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
b0fdea1
chore: install packages needed for server
dickysn Mar 24, 2025
9c4f4ec
setup bcrypt and users
dickysn Mar 24, 2025
41468bf
feat: login and register
dickysn Mar 24, 2025
556d848
feat & chore: setup nodemailer and remove old .env
dickysn Mar 24, 2025
2705378
feat: nodemailer gmail to email
dickysn Mar 24, 2025
c0b85ac
chore: email template design
dickysn Mar 24, 2025
1eac36e
feat: layout for register,login landing page
dickysn Mar 25, 2025
09d68da
add detail course
dickysn Mar 25, 2025
a2e55a6
feat: finish all necessary page for courses and auth
dickysn Mar 25, 2025
bc7b87e
feat: crud server side
dickysn Mar 25, 2025
40fb43e
feat: finishing client auth
dickysn Mar 25, 2025
08d5b88
chore: fetch data using redux
dickysn Mar 26, 2025
fc465c7
feat: get detail course with redux
dickysn Mar 26, 2025
35807d2
implement redux to unroll and unenroll
dickysn Mar 26, 2025
d793de8
feat: enroll, unenroll course
dickysn Mar 26, 2025
4baf589
feat: get kanji from kanjidev api
dickysn Mar 26, 2025
e68b6a6
feat: implement gemini api to translirate
dickysn Mar 26, 2025
06e731b
implement ai feature to translate and transliterate
dickysn Mar 26, 2025
311e666
fix enrollement and favorite bug
dickysn Mar 26, 2025
24a4ec2
add test coverage percentation up to 50%
dickysn Mar 26, 2025
2898325
modify config
dickysn Mar 26, 2025
0d2e83f
add new env var
dickysn Mar 27, 2025
04f897c
improve test coverage
dickysn Mar 27, 2025
078fb8d
feat: add api docs
dickysn Mar 27, 2025
2542f51
testing coverage up to 90%
dickysn Mar 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions client/.firebase/hosting.ZGlzdA.cache
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
vite.svg,1742260251222,699a02e0e68a579f687d364bbbe7633161244f35af068220aee37b1b33dfb3c7
index.html,1743020052734,7d2eb91387179f1d05ad06419df078478c94c53aeae2dadc2a98a59085597d02
assets/index-BDAipEXg.css,1743020052734,3128af03d137a6590aef6fa8bd00ccaf2e1f2d385c1c864281afad3acfa51df3
assets/hero-Cj08RxkT.svg,1743020052734,7ddfec926291860a7098cf85085b547922c8d995a9d669d9777c0b1d720cc4c9
assets/index-aFz7XF--.js,1743020052734,071409052e4fc1d15e11f291b0a6731fcf632e5e9537f81f58675e96088559d2
5 changes: 5 additions & 0 deletions client/.firebaserc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"projects": {
"default": "garuda-nihon-web-client"
}
}
25 changes: 25 additions & 0 deletions client/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
.env
12 changes: 12 additions & 0 deletions client/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# React + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh

## Expanding the ESLint configuration

If you are developing a production application, we recommend using TypeScript and enable type-aware lint rules. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project.
33 changes: 33 additions & 0 deletions client/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import js from '@eslint/js'
import globals from 'globals'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'

export default [
{ ignores: ['dist'] },
{
files: ['**/*.{js,jsx}'],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
parserOptions: {
ecmaVersion: 'latest',
ecmaFeatures: { jsx: true },
sourceType: 'module',
},
},
plugins: {
'react-hooks': reactHooks,
'react-refresh': reactRefresh,
},
rules: {
...js.configs.recommended.rules,
...reactHooks.configs.recommended.rules,
'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }],
'react-refresh/only-export-components': [
'warn',
{ allowConstantExport: true },
],
},
},
]
16 changes: 16 additions & 0 deletions client/firebase.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"hosting": {
"public": "dist",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
}
18 changes: 18 additions & 0 deletions client/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!doctype html>
<html lang="en">

<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<script src="https://accounts.google.com/gsi/client" async></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Garuda Nihon</title>

</head>

<body>
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
</body>

</html>
Loading