RentHome to aplikacja webowa do zarządzania wynajmowanymi nieruchomościami, umożliwiająca właścicielom mieszkań łatwe prowadzenie ewidencji lokali, najemców, umów, wyposażenia oraz zużycia mediów.
- Rejestracja i logowanie użytkowników (właścicieli mieszkań)
- Zarządzanie nieruchomościami (dodawanie, edycja, usuwanie, przeglądanie)
- Ewidencja najemców i umów najmu
- Dodawanie i zarządzanie wyposażeniem mieszkań
- Rejestrowanie i przeglądanie zużycia mediów (woda, prąd, gaz)
- Statystyki użytkownika (liczba mieszkań, średnia powierzchnia, dochody, zużycie mediów)
- Responsywny frontend (React)
- Node.js (zalecana wersja 18+)
- MySQL (zalecana wersja 8+)
- npm
-
Sklonuj repozytorium:
git clone https://github.com/Julo-coder/RentHome.git cd RentHome
-
Zainstaluj zależności backendu:
npm install
-
Zainstaluj zależności frontendu:
cd frontend npm install cd ..
-
Utwórz bazę danych i tabele:
W pliku
RentHome.sql
znajduje się pełny skrypt tworzący bazę danych i tabele. Plik ten znajduje się w folderzesql
. Uruchom go w swojej konsoli MySQL:mysql -u root -p < sql/RentHome.sql
-
(Opcjonalnie) Dodaj przykładowe dane:
Uwaga: Przed wykonaniem tego kroku musisz mieć już utworzonego użytkownika w bazie danych, ponieważ domyślnie nie istnieje żaden użytkownik i bez tego pojawią się błędy podczas wstawiania przykładowych danych.
mysql -u root -p < sql/ExampleInserts.sql
-
Upewnij się, że dane dostępowe do bazy w
server.js
są poprawne:// server.js const db = mysql.createPool({ host: "localhost", user: "root", password: "hasło do MySQL server na roota", database: "RentHome", ... });
-
Backend (Express + MySQL):
node server.js
lub (jeśli masz zainstalowany
nodemon
):npx nodemon server.js
-
Frontend (React):
cd frontend npm start
Frontend domyślnie działa na http://localhost:3000, backend na http://localhost:8081.
RentHome/
├── .gitignore
├── README.md
├── package.json
├── server.js
├── sql/
│ ├── RentHome.sql
│ ├── ExampleInserts.sql
├── frontend/
│ ├── package.json
│ ├── public/
│ │ ├── index.html
│ │ └── img/
│ │ ├── android-chrome-192x192.png
│ │ ├── android-chrome-512x512.png
│ │ ├── apple-touch-icon.png
│ │ ├── favicon-16x16.png
│ │ ├── favicon-32x32.png
│ │ ├── favicon.ico
│ │ └── site.webmanifest
│ └── src/
│ ├── App.js
│ ├── index.js
│ ├── components/
│ │ ├── AddContractModal.js
│ │ ├── AddEquipmentModal.js
│ │ ├── AddEstateModal.js
│ │ ├── AddUsageModal.js
│ │ ├── ContractDetailsModal.js
│ │ ├── Details.js
│ │ ├── EditEquipmentModal.js
│ │ └── ...
│ └── styles/
│ ├── const.css
│ ├── details.css
│ ├── estate.css
│ ├── header.css
│ ├── home.css
│ ├── index.css
│ ├── login.css
│ ├── modal.css
│ ├── navbar.css
│ ├── popup.css
│ ├── profile.css
│ ├── register.css
│ └── reset.css
Projekt udostępniany na licencji ISC.
Autor: jkozlowski KamilCzajczyk DawidRm