- π About the Project
- π» Getting Started
- π₯ Authors
- π Future Features
- π€ Contributing
- βοΈ Show your support
- π Acknowledgements
- π License
Welcome to the Photo Gallery App! A fully responsive both mobile and desktop full-stack application built using React.js for the front-end and Node.js with Express.js for the back-end. It allows users to create and manage their photo galleries securely. This documentation provides insights into the project structure, key technologies used, and an overview of the application features.
Client
- It is Hosted on Netlify
- React.js
- Tailwind
- FireBase
- Redux
- React-Router-Dom
Server
- Server - It is Hosted on Render
- Node.js
- Express.js
- Mongoose
- JWT
Database
- Mongodb
The frontend of the Photo Gallery Web App is organized into a standard React project structure, including components, assets, and configuration files. The main folders and files in the project structure include:
.github/workflow/linters.yml
: GitHub action CI/CD for automation build process.src/
: The source code for the React application.assets/
: Stores static assets such as images and styles.layout/Root.jsx
: The layout and entry point of the application.main.js
: Renders the React app and attaches it to the DOM.pages/
: Contains all React components used in the application.pages/..
: Containsabout
,Auth controll
,errorpage
,homepage
,photo gallery
, and allshared
components .routes/
: Contains all Route declaration.redux/
: Contains all global state management logic.
package.json
: Lists project dependencies and defines scripts for development and building.
-
The frontend employs validation and error handling to enhance the user experience:
-
Real-time validation of user input during registration to ensure data accuracy.
-
Comprehensive error handling for API requests, ensuring graceful responses to user interactions.
- Google OAuth is seamlessly integrated into the app:
- Users can register and log in using their Google accounts.
- This integration ensures secure and straightforward access.
- User authentication with Firebase and JWT for secure access.
- CRUD (Create, Read, Update, Delete) operations for photo galleries.
- The app utilizes React-Beautiful-DnD to implement a smooth and intuitive drag-and-drop feature:
- Drag-and-drop functionality for reordering images in galleries.
- Simply drag an image and drop it in the desired position.
- The updated order is immediately reflected.
- Integration with Google OAuth for seamless user registration and login.
- Real-time validation of user input for registration.
- Logout functionality.
- Sign up or log in using your Google account to access your photo galleries.
- Create new galleries and add images to them.
- Rearrange images within a gallery using drag-and-drop.
- Delete galleries or individual images.
- Enjoy seamless and secure access to your photo collections.
To get a local copy up and running, follow these steps.
- In order to run this project you need:
- A Computer (MAC or PC)
- code editor (VSCode,Atom etc...)
- A browser (Chrome,Mozilla,Safari etc...)
- Version Control System (Git and Github)
Clone this repository to your desired folder:
git clone https://github.com/AbdusSattar-70/photo_gallery.git
cd photo_gallery
Install this project with:
npm install
To run tests and check errors, run the following command:
- To check Styelint error:-
npx stylelint "\*_/_.{css,scss}"
- To check Eslint error:-
npx eslint "**/*.{js,jsx}"
You can deploy this project using:
- Render Hosting server or GitHub pages
npm install
npm run dev
- GitHub: AbdusSattar-70
- Twitter: Abdus Sattar
- LinkedIn: Abdus Sattar
- Add Search functionality
- Add web accessibility
- Add about page and RBAC controll
- Add test case using jest
- Image Download and zoom options
- Add Lazy loading
Everybody is welcome to suggest, changes,Contributions, issues, and feature request in this project.
In order to do it, fork this repository, create a new branch and open a Pull Request from your branch.
Feel free to check the issues page.
If you like this project, Please give me βοΈ and you can use it following MIT license.
I would like to thank Firebase, React, Mongodb, Netlify and Render team for the opportunity to learn and use their platform and services free to use.
This project is under MIT licensed.