Add README with project documentation
This commit is contained in:
112
README.md
Normal file
112
README.md
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
# 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.
|
||||||
Reference in New Issue
Block a user