https://github.com/capellax02/rentity
A Full-Stack Next.js 14 app for discovering and managing rental properties. Features secure authentication, property management, image uploads, map integration, etc. built with Next.js Actions, Tailwind CSS, MongoDB, Cloudinary, and more.
https://github.com/capellax02/rentity
cloudinary googleauth mongodb nextjs tailwindcss
Last synced: 5 months ago
JSON representation
A Full-Stack Next.js 14 app for discovering and managing rental properties. Features secure authentication, property management, image uploads, map integration, etc. built with Next.js Actions, Tailwind CSS, MongoDB, Cloudinary, and more.
- Host: GitHub
- URL: https://github.com/capellax02/rentity
- Owner: CAPELLAX02
- Created: 2024-08-16T00:55:39.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-09-18T14:24:39.000Z (over 1 year ago)
- Last Synced: 2025-10-09T00:36:14.777Z (8 months ago)
- Topics: cloudinary, googleauth, mongodb, nextjs, tailwindcss
- Language: JavaScript
- Homepage: https://rentity-henna.vercel.app
- Size: 11.2 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Rentity
> A web application to help you find your next rental property.
[Visit Live Demo](https://rentity-henna.vercel.app)
Rentity is a comprehensive Full-Stack application built with Next.js 14, designed for discovering and managing rental properties with ease. The platform offers secure user authentication, dynamic property management, multi-image uploads, interactive map integration, and more. It leverages modern technologies such as Next.js Actions, Tailwind CSS, MongoDB, Cloudinary, and others to provide a fast, responsive, and user-friendly experience.
## Features
Rentity offers the following features:
- User authentication with Google & Next Auth
- Route protection
- User profile with user listings
- Multiple property image upload via cloudinary
- Property search functionality
- Internal messages with 'unread' notifications
- Photoswipe image gallery
- Toast notifications
- Property bookmarking / saved properties
- Property sharing to social media
- Loading spinners
- Responsive design (Tailwind CSS)
- Custom 404 page
- Next.js Actions
## Screenshots
Here are some screenshots of the Rentity platform:
### Home page & Footer

### Properties page as well as pagination

### Search Properties

### Google Sign-In

### Property details page


### Profile

### Add & Edit Property

### Bookmark Property

## Messages between recipient and owner

## Technologies Used
Rentity is built with the following technologies:
- [Next.js](https://nextjs.org/)
- [React](https://reactjs.org/)
- [Tailwind CSS](https://tailwindcss.com/)
- [MongoDB](https://www.mongodb.com/)
- [Mongoose](https://mongoosejs.com/)
- [NextAuth.js](https://next-auth.js.org/)
- [React Icons](https://react-icons.github.io/react-icons/)
- [Photoswipe](https://photoswipe.com/)
- [Cloudinary](https://cloudinary.com/)
- [React Spinners](https://www.npmjs.com/package/react-spinners)
- [React Toastify](https://fkhadra.github.io/react-toastify/)
- [React Share](https://www.npmjs.com/package/react-share)
## Getting Started
### Prerequisites
- Node.js version 18 or higher
- MongoDB Atlas account and a cluster. Sign up and create a cluster at [MongoDB](https://www.mongodb.com/)
- Cloudinary account. Sign up at [Cloudinary](https://cloudinary.com/)
- Google console account. Sign up at [Google Cloud](https://console.cloud.google.com/)
### `.env` File
Rename the `example.env` file to `.env` and fill in the following environment variables:
- Get your MongoDB connection string from your MongoDB Atlas cluster and add it to `MONGODB_URI`.
- Get your Google client ID and secret from your Google console account and add them to `GOOGLE_CLIENT_ID` and `GOOGLE_CLIENT_SECRET`.
- Add a secret to `NEXTAUTH_SECRET`. You can generate it with the following command:
```bash
openssl rand -base64 32
```
- Get your Cloudinary cloud name, API key, and API secret from your Cloudinary account and add them to `CLOUDINARY_CLOUD_NAME`, `CLOUDINARY_API_KEY`, and `CLOUDINARY_API_SECRET`.
### Install Dependencies
```bash
npm install
```
### Run the Development Server
```bash
npm run dev
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.