- OAuth: Secure authentication using OAuth for user login.
- JWT: JSON Web Tokens for secure communication between the client and server.
- Firebase Storage: Storage for property images.
- Google Maps API: Integration with Google Maps for location services.
- Directions Service: Provides directions from the property to the school gate.
- Distance and Duration Calculation: Calculates the distance and duration from the property to the school gate.
- Redux Toolkit: State management for the React frontend.
- MongoDB: NoSQL database for storing property listings and user information.
- Express JS and NodeJS: Backend server using Express JS and NodeJS.
- React: Frontend framework for building the user interface.
- CRUD Operations: Full CRUD functionality for managing users and property listings.
- Landlord Contact: Direct contact information for landlords.
git clone
npm install
cd client && npm install
npm run dev
- Create a
.env
file in the client folder of your project. - Add the following environment variables to the
.env
file:
VITE_GOOGLE_MAPS_API_KEY=YOUR_GOOGLE_MAPS_API_KEY
VITE_FIREBASE_API_KEY=YOUR_FIREBASE_API_KEY
Obtain the API keys from the Google Cloud Platform for Google Maps API and Firebase.
- Create another
.env
file in the root folder of your project. - Add the following environment variables to this
.env
file:
MONGO=YOUR_MONGODB_CONNECTION_STRING
JWT_SECRET=YOUR_JWT_SECRET
Save your MongoDB connection string and choose a JWT secret.
Make sure to replace YOUR_GOOGLE_MAPS_API_KEY
, YOUR_FIREBASE_API_KEY
, YOUR_MONGODB_CONNECTION_STRING
, and YOUR_JWT_SECRET
with your actual API keys and secrets obtained from the respective platforms.
- User Registration and Login:
- Register or login to your account using the provided authentication options.
- View Property Listings:
- Browse through the available property listings to find accommodation options that suit your preferences.
- Contact Landlords:
- Once you find a property you're interested in, click on the listing to view more details.
- Use the provided contact information to get in touch with the landlord for further inquiries or to arrange a viewing.
- Add or Update Property Listings (Landlords Only):
- If you're a landlord, navigate to the dashboard section of the application.
- Here, you can add new property listings, update existing listings, or remove listings as needed.
- View Property Location and Directions:
- Explore the location of each property on the map to get a better understanding of its surroundings.
- Use the Google Maps integration to view directions and estimate the distance and duration from the property to the school gate.
- Manage Your Account:
- Update your profile information, including contact details and preferences, as necessary.
- For landlords, manage your property listings and contact information to ensure accurate representation.
- Feedback and Support:
- Provide feedback on your experience using the application to help us improve and better serve your needs.
- If you encounter any issues or need assistance, don't hesitate to reach out to our support team for help.
- MongoDB
- Express JS
- React
- NodeJS
- Firebase
- Redux Toolkit
- Google Maps API
- JWT
- Tailwind CSS
Thank you for considering contributing to KejaniEstate! We welcome contributions from the community to help improve and enhance our platform. Before getting started, please review the following guidelines:
Code of Conduct
- We expect all contributors to adhere to our Code of Conduct. Please ensure that all interactions and contributions are respectful and considerate of others.
How to Contribute
- Reporting Bugs
- If you encounter any bugs or issues while using KejaniEstate, please open a new issue on our issue tracker with a detailed description of the problem, steps to reproduce, and any relevant information.
- Feature Requests
- Have an idea for a new feature or improvement? Feel free to open a new issue on our issue tracker and describe your proposal in detail. We welcome feedback and suggestions from the community.
- Code Contributions
- Fork the repository and create a new branch for your contributions.
- Ensure that your code follows the established coding conventions and style guidelines.
- Write clear and concise commit messages.
- Submit a pull request with your changes, providing a detailed description of the changes made and any relevant information for reviewers.
- Testing
- Help us ensure the stability and reliability of KejaniEstate by testing new features, bug fixes, and improvements.
- Provide feedback on the functionality and usability of the application to help identify areas for improvement.
- Documentation
- Improve and expand the project documentation to make it more comprehensive and accessible to users and contributors.
- Update README.md, contributing guidelines, and other documentation files as needed.
Code Review Process
All contributions will be reviewed by the project maintainers before being merged. Reviewers may provide feedback or suggestions for improvement, so please be responsive to any comments or requests for clarification.
This project is licensed under the MIT License.
- Email: obwangitowen@gmail.com
- Phone: +254745506919
- LinkedIn: Owen Esiepe
Special thanks to Sahand Ghavidel for their valuable contributions. You can find their profile here.