Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
7 changes: 7 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Custom License for **Javascript CRUD with SampleTasks**

This repository and all its contents are the property of **Mohamed Rizwan**. Use of any part of this repository, including code, documentation, or resources, is only permitted with prior written consent from the owner.

Access to this repository is provided for the purpose of collaboration or review, as approved by the owner. Any use, modification, or distribution of the contents should be done with permission.

For any inquiries regarding permissions, please contact Mohamed Rizwan at **mohamedrizwan399@gmail.com**.
79 changes: 79 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# Javascript CRUD with SampleTasks

A Javascript application to demonstrate the comprehensive **CRUD** app built using ReactJS and Firebase. It implement user authentication with both Google Sign-In and username/password login methods, along with other key features such as API handling, local storage CRUD operations, and managing application state using Redux.
The app also leverages modern React hooks, lifecycle methods, and routing for smooth navigation between pages.

## Features
- **User authentication with Google Sign-In**: Users can sign in using their Google accounts using Firebase for secure authentication.
- **Username/Password Authentication**: Custom username and password login using Firebse for added flexibility.
- **CRUD Operations**: Ability to perform create, read, update, and delete operations with data stored in local storage.
- **API Handling with Axios**: Handled API requests using Axios for fetching data from remote servers.
- **Data Management with Redux**: Efficiently manage app state using Redux store to handle data across components.
- **React Hooks and Lifecycle Methods**: Utilization of React hooks like useState, useEffect, useRef and lifecycle methods for optimal component behavior.
- **Dynamic Routing**: Implemented navigation between pages with React Router for a dynamic user experience.
- **Loader Implementation**: Display a loader during asynchronous operations to improve user experience.
- **Responsive UI**: Fully responsive UI with styling using CSS and modern design principles.
- **Header and Footer**: The header includes navigation tabs, and the footer provides links to "About Us" and "Contact Us" pages.


## Prerequisites
You need to install required version:
- Node.js 16 LTS [Download Node.js](https://nodejs.org/)
- Npm 8 >= or yarn

## Steps to Installation
**Step 1:** Clone the repo
```bash
- https://github.com/MohamedRizwan399/CRUDJavaScriptSampleProject.git
```

**Step 2:** Install the dependencies using npm
```bash
- npm install
```

**Step 3:** Run the application
```bash
- npm start
```
Runs the app in the development mode.\
Open [http://localhost:3000](http://localhost:3000) to view it in your browser.

The page will reload when you make changes.\
You may also see any lint errors in the console.

**Step 4:** Run the test suites
```bash
- npm test
```
Launches the test runner in the interactive watch mode.\
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.

**Step 5:** To run build in Production, if needed
```bash
- npm run build
```
Builds the app for production to the `build` folder.\
It correctly bundles React in production mode and optimizes the build for the best performance.


## Learn More

To learn React, check out the [React documentation](https://reactjs.org/).

### Code Splitting

This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)

### Analyzing the Bundle Size

This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)

### Making a Progressive Web App

This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)


### Deployment

This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)
57 changes: 57 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
{
"name": "javascript-crud-with-sampletasks",
"version": "2.0.0",
"homepage": "https://mohamedrizwan399.github.io/CRUDJavaScriptSampleProject",
"private": true,
"dependencies": {
"@reduxjs/toolkit": "^1.9.7",
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
"axios": "^1.7.7",
"cors": "^2.8.5",
"firebase": "^11.0.1",
"gh-pages": "^6.3.0",
"jest": "^27.5.1",
"jwt-decode": "^3.1.2",
"nodemon": "^3.1.7",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-icons-kit": "^2.0.0",
"react-redux": "^8.1.3",
"react-router-dom": "^6.4.1",
"react-scripts": "5.0.1",
"react-spinners": "^0.14.1",
"react-toastify": "^10.0.6",
"react-uuid": "^1.0.3",
"redux": "^4.2.0",
"styled-components": "^5.3.5",
"web-vitals": "^2.1.4"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"predeploy": "npm run build",
"deploy": "gh-pages -b production -d build"
},
"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"
]
}
}