IPark is a web application that provides parking solutions for users. It allows users to find the nearest available garage, reserve it using either cash or card payment methods, and view their reservation history. Additionally, an admin dashboard is available for approving or unapproving signed garages.
- React: A JavaScript library for building user interfaces.
- Firebase: A platform for creating web and mobile applications that offers real-time data storage and authentication.
- Redux Toolkit: A set of tools to manage the state of your React application efficiently.
- Google Cloud: Provides access to Google Maps and Google Places API for location-based services and also Google Matrix Distance to calculate distances and travel times between locations.
- Stripe: A payment processing platform used to implement payment functionality.
- Localization: The app supports English and Arabic languages.
- Responsive Design: The application is fully responsive and works well on different devices.
- Material UI: A popular React component library for creating beautiful and responsive UI.
- Bootstrap: A CSS framework for building responsive and mobile-first websites.
- Formik: A form library for React that helps with form management and validation.
- EmailJS: A service that allows you to send emails directly from your JavaScript code.
- Owl Carousel: A responsive and touch-enabled carousel plugin for displaying content.
To run the IPark web application on your local machine, follow these steps:
-
Clone the repository:
git clone https://github.com/Nader-CS/parking-system.git
-
Navigate to the project directory:
cd parking-system
-
Install the dependencies:
npm install
-
Configure Firebase:
- Create a new Firebase project.
- Enable Firebase Authentication, Realtime Database, and Storage.
-
Set up Stripe:
- Create a Stripe account.
- Obtain your Stripe API keys.
- Replace the key values in the project.
-
Start the development server:
npm start
-
Open your web browser and visit
http://localhost:3000
to access the IPark application.
Contributions to IPark are welcome! If you would like to contribute, please follow these guidelines:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Commit your changes with descriptive commit messages.
- Push your branch to your forked repository.
- Open a pull request, describing your changes in detail.
We would like to acknowledge the following resources that helped us develop IPark:
- React documentation: https://react.dev/
- Firebase documentation: https://firebase.google.com/docs
- Google Cloud documentation: https://cloud.google.com/
- Redux Toolkit documentation: https://redux-toolkit.js.org
- Stripe documentation: https://stripe.com/docs
- Material UI documentation: https://material-ui.com
- Bootstrap documentation: https://getbootstrap.com/docs
- Formik documentation: https://formik.org/docs
- EmailJS documentation: https://www.emailjs.com/docs