# Rentall App A full-stack marketplace application for renting items, built with React and Node.js. ## Features - **User Authentication**: Secure JWT-based authentication - **Item Listings**: Create, edit, and manage rental items - **Smart Search**: Browse and filter available items - **Availability Calendar**: Visual calendar for managing item availability - **Rental Requests**: Accept or reject rental requests with custom reasons - **Delivery Options**: Support for pickup, delivery, and in-place use - **User Profiles**: Manage profile information and view rental statistics - **Responsive Design**: Mobile-friendly interface with Bootstrap ## Tech Stack ### Frontend - React with TypeScript - React Router for navigation - Bootstrap for styling - Axios for API calls - Google Places API for address autocomplete ### Backend - Node.js with Express - SQLite database with Sequelize ORM - JWT for authentication - Bcrypt for password hashing ## Getting Started ### Prerequisites - Node.js (v14 or higher) - npm or yarn ### Installation 1. Clone the repository ```bash git clone https://github.com/YOUR_USERNAME/rentall-app.git cd rentall-app ``` 2. Install backend dependencies ```bash cd backend npm install ``` 3. Set up backend environment variables Create a `.env` file in the backend directory: ``` JWT_SECRET=your_jwt_secret_here PORT=5001 ``` 4. Install frontend dependencies ```bash cd ../frontend npm install ``` 5. Set up frontend environment variables Create a `.env` file in the frontend directory: ``` REACT_APP_API_URL=http://localhost:5001 REACT_APP_GOOGLE_MAPS_API_KEY=your_google_maps_api_key ``` ### Running the Application 1. Start the backend server ```bash cd backend npm start ``` 2. In a new terminal, start the frontend ```bash cd frontend npm start ``` The application will be available at `http://localhost:3000` ## Key Features Explained ### Item Management - Create listings with multiple images, pricing options, and delivery methods - Set availability using an intuitive calendar interface - Manage rental rules and requirements ### Rental Process - Browse available items with search and filter options - Select rental dates with calendar interface - Secure payment information collection - Real-time rental request notifications ### User Dashboard - View and manage your listings - Track rental requests and accepted rentals - Monitor rental statistics - Update profile information ## Contributing Feel free to submit issues and enhancement requests! ## License This project is open source and available under the MIT License.