TenantTalk is a community-driven platform for tenants to rate, review, and share their experiences with landlords and rental properties. Our mission is to empower renters by promoting transparency, accountability, and informed decision-making in the housing market.
- Project Vision and Strategy
- Features
- Technology Stack
- Architecture
- Getting Started
- Prerequisites
- Installation
- Running the Application
- Contributing
- License
- Contact
The vision for TenantTalk is to create a platform for users to rate and review their living experiences at specific addresses. The team is committed to a collaborative, flexible, and learning-focused approach to developing this service, with plans to adapt and improve the application over time. The team's work philosophy prioritizes functionality, embraces the fail fast principle, and maintains proper documentation for each activity.
For more details, please refer to the meeting notes.
- User authentication and authorization
- Rate and review landlords and rental properties
- Search for rental properties and landlords
- Filter and sort search results
- Tenant discussion forums
- Private messaging between users
- Multilingual support (initially English, Polish, and Ukrainian)
- Landlord ratings and neighborhood reviews
- Comparison section with data scraped from Google Reviews
- Flat rental feature
- Section for individuals looking for roommates
- Legal advice section
- Housing blog
- Frontend: React, Redux, Redux Toolkit
- Backend: Node.js, Express
- Database: MongoDB (initially), with considerations for PostgreSQL, MySQL, or Firebase
- API: RESTful
- UI Design: Figma
- Transcription and Documentation: Otter AI
- Deployment: Microsoft Azure
- Testing: Test-Driven Development (TDD) approach
- Internationalization: React (coded from the beginning to allow for translations)
- Potential Future Technologies: Python (for web scraping and other potential tasks)
TenantTalk follows a three-tier architecture:
-
Presentation Layer (Front-End): This layer translates tasks and results to something the user can understand. It is built with React and Redux. The team has decided to focus on internationalization from the start, allowing for multilingual support. The initial languages will be English and Ukrainian.
-
Application Layer (Back-End): This layer guides communications and controls application functionality by performing detailed processing. It is built with Node.js and Express. The team is committed to a Test-Driven Development (TDD) approach, using a "red-green-refactor" cycle. The team also plans to use a Google scraper to gather data about residential experiences at specific addresses.
-
Database Layer: This layer includes the data persistence mechanisms (database servers, file shares, etc.) and the data access layer that encapsulates the persistence mechanisms and exposes the data. The data access layer should provide an API to the application layer that exposes methods of managing the stored data without exposing or creating dependencies on the data storage mechanisms. MongoDB is used for data storage. The team is also considering other database options, such as PostgreSQL, MySQL, or Firebase, each with their own strengths and weaknesses.
The team follows the 12 Factor Application Methodology, a cloud-native development methodology sourced from IBM, to ensure their applications are scalable, maintainable, and transferable across different execution environments. The application is planned to be deployed on Microsoft Azure, using the Pay As You Go pricing model to ensure cost-effectiveness.
These instructions will help you set up the project on your local machine for development and testing purposes.
Ensure you have the following software installed on your system:
- Node.js (v14.x or higher)
- npm (v6.x or higher)
- MongoDB (v4.x or higher)
-
Fork the repository and clone it to your local machine.
git clone https://github.com/abenteuerzeit/tenant-talk.git
-
Change into the project directory.
cd TenantTalk
-
Install the required dependencies.
npm install
-
Create a
.env
file in the root directory and add your environment variables, such as your database connection string, JWT secret, etc.MONGODB_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret PORT=3000
-
Start the MongoDB server if it's not already running.
mongod
-
Start the development server.
npmrun dev
-
Open your browser and navigate to
http://localhost:3000
to view the application.
We welcome contributions from the community! Please read our CONTRIBUTING.md file for more details on how to contribute to TenantTalk. We follow a Test-Driven Development (TDD) approach, so please include tests with your pull requests.
This project is not yet licensed.
If you have any questions, issues, or suggestions, please feel free to open an issue or reach out to me. We also have a discussion forum where you can ask questions, share ideas, or engage with the community.
Name | Role | Responsibilities | Github |
---|---|---|---|
Adrian Mroz | Team Lead & Back-End Developer | Controller, Models | @abenteuerzeit |
Efosa Ojomo | Front-End Developer | Views | @Efzo |
Piotr Palacz | Front-End Developer | Views | @piotrpalacz |
Dmytro Pishchenkov | Front-End Developer | Views | @DemetrPI |
Eren Yazici | Back-End Developer | Business Logic, Models | @LucidMoments |