Skip to content

Commit

Permalink
added client sode code
Browse files Browse the repository at this point in the history
  • Loading branch information
SDE-ADNAN committed Jan 5, 2024
1 parent 4cfc2bc commit 2785df9
Show file tree
Hide file tree
Showing 99 changed files with 5,209 additions and 0 deletions.
23 changes: 23 additions & 0 deletions admin-client/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*
3 changes: 3 additions & 0 deletions admin-client/.vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"editor.acceptSuggestionOnEnter": "on"
}
39 changes: 39 additions & 0 deletions admin-client/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
## DEPLOYED AT
https://adnans-react-typescript-todo.netlify.app/


credentials:

username: "AdnanKhan"
password: "AdnanKhan@4069"


Frontend Engineer Assignment

Create a React Application with a login page and a dashboard page. The
dashboard should display the user’s profile information and a list of the user’s
todos.
For authentication, user profile info You can use a JSON file or a static
JavaScript object for mock username & password data.
Implement the following features in the application:
1. Implement user authentication using a secure token-based authentication
such as JWT. Without login, the user should not be able to see the dashboard.
2. The app should use React Context API to store login user information.
3. Implement the logout functionality.
4. In the dashboard, add a button through which new Todos can be added,
when creating a todo it can be stored in a global context.
5. Add a feature that allows the addition of Nested Todo, (Sub Task), It is
entirely up to you how you design this feature. get inspiration from existing
Todo apps
6. Make sure to sanitize and validate user inputs to prevent injection attacks.

7. Implement a route guard that requires the user to be successfully
authenticated before they can view their dashboard. If the user is not
authenticated, they should be redirected to the login page.
8. Implement proper error handling in the code.
9. Use your own creativity to make a better user experience.
10. The app can be hosted on any platform i.e Netlify, or Vercel. And source
code should be publically accessible on any git repository to review.
11. The source code must be in Typescript.
Candidates can take inspiration from this screenshot below to create their own
dashboard experience.
58 changes: 58 additions & 0 deletions admin-client/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
{
"name": "todo-app",
"version": "0.1.0",
"private": true,
"dependencies": {
"@chakra-ui/icons": "^2.1.0",
"@chakra-ui/react": "^2.8.0",
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"@mui/material": "^5.13.7",
"@mui/styled-engine-sc": "^5.12.0",
"@reduxjs/toolkit": "^1.9.5",
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
"@types/jest": "^27.5.2",
"@types/node": "^16.18.35",
"@types/node-sass": "^4.11.3",
"@types/react": "^18.2.14",
"@types/react-dom": "^18.2.6",
"@types/react-redux": "^7.1.25",
"framer-motion": "^10.12.16",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-redux": "^8.1.1",
"react-router-dom": "^6.12.1",
"react-scripts": "^5.0.1",
"redux-thunk": "^2.4.2",
"sass": "^1.64.1",
"styled-components": "^5.3.11",
"typescript": "^4.9.5",
"web-vitals": "^2.1.4"
},
"scripts": {
"start": "ENV=LOCAL react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
1 change: 1 addition & 0 deletions admin-client/public/_redirects
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/* /index.html 200
Binary file added admin-client/public/favicon.ico
Binary file not shown.
20 changes: 20 additions & 0 deletions admin-client/public/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Web site created using create-react-app"
/>
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<title>Todo App</title>
</head>
<body>
<div id="root"></div>
<div id="modal-root"></div>
<div id="loader"></div>
</body>
</html>
15 changes: 15 additions & 0 deletions admin-client/public/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"short_name": "React App",
"name": "Create React App Sample",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}
3 changes: 3 additions & 0 deletions admin-client/public/robots.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:
Loading

0 comments on commit 2785df9

Please sign in to comment.