A comprehensive property management system with React.js frontend and .NET Core Web API backend.
This project consists of two main components:
- Frontend: React.js application for user interface
- Backend: .NET Core Web API for data management and business logic
- Modern, responsive UI with brand styling
- Comprehensive property management modules
- Customer management and tracking
- Payment plan management
- Property allotment and transfer system
- Interactive dashboards and reports
- Real-time updates
- RESTful API endpoints for all operations
- Entity Framework Core with SQLite database
- Comprehensive data models for property management
- CORS enabled for frontend integration
- Pagination support for large datasets
- Proper HTTP status codes and error handling
- React.js 18
- React Router for navigation
- Styled Components for styling
- Lexend font for brand typography
- .NET Core 8.0
- Entity Framework Core 8.0.11
- SQLite database
- Npgsql (PostgreSQL support available)
PMS_FrontEnd/
βββ src/ # React frontend source
β βββ assets/ # Static assets (images, icons)
β βββ components/ # Reusable UI components
β βββ layouts/ # Layout components (Sidebar, TopBar)
β βββ pages/ # Page components for each route
β βββ styles/ # Global styles and theme
β βββ utils/ # Utility functions and helpers
βββ PMS_BackEnd_APIs/ # .NET Core Web API
β βββ PMS_APIs/
β βββ Controllers/ # API controllers
β βββ Models/ # Data models
β βββ Data/ # Database context
β βββ Migrations/ # EF Core migrations
βββ README.md
GET /api/Customers- Get all customers (paginated)GET /api/Customers/{id}- Get customer by IDPOST /api/Customers- Create new customerPUT /api/Customers/{id}- Update customerDELETE /api/Customers/{id}- Delete customer
GET /api/Properties- Get all properties (paginated)GET /api/Properties/{id}- Get property by IDPOST /api/Properties- Create new propertyPUT /api/Properties/{id}- Update propertyDELETE /api/Properties/{id}- Delete property
GET /api/PaymentPlans- Get all payment plans (paginated)GET /api/PaymentPlans/{id}- Get payment plan by IDPOST /api/PaymentPlans- Create new payment planPUT /api/PaymentPlans/{id}- Update payment planDELETE /api/PaymentPlans/{id}- Delete payment plan
- Allotments, Payments, Penalties, Waivers, Refunds, Transfers, NDCs, Possessions, Registrations
- Node.js (v16 or higher)
- .NET Core SDK 8.0
- Git
-
Clone the repository
git clone <repository-url> cd PMS_FrontEnd
-
Install dependencies
npm install
-
Start the development server
npm start
-
Open your browser Navigate to http://localhost:3000
-
Navigate to the API directory
cd PMS_BackEnd_APIs/PMS_APIs -
Restore NuGet packages
dotnet restore
-
Update the database
dotnet ef database update
-
Start the API server
dotnet run
-
API will be available at http://localhost:5296
-
Start the backend API (Terminal 1)
cd PMS_BackEnd_APIs/PMS_APIs dotnet run -
Start the frontend (Terminal 2)
npm start
-
Access the application
- Frontend: http://localhost:3000
- API: http://localhost:5296
- Primary Color: #dd9c6b
- Secondary Color: #00234C
- Font: Lexend
All API endpoints return data in a consistent format:
{
"data": [...],
"totalCount": 0,
"page": 1,
"pageSize": 10,
"totalPages": 0
}# PowerShell
Invoke-WebRequest -Uri "http://localhost:5296/api/Customers" -Method POST -Headers @{"Accept"="application/json"; "Content-Type"="application/json"} -Body '{"name":"John Doe","email":"john.doe@example.com","phone":"123-456-7890","address":"123 Main St","cnic":"12345-1234567-1"}'# PowerShell
Invoke-WebRequest -Uri "http://localhost:5296/api/Customers" -Method GET -Headers @{"Accept"="application/json"}The system currently uses SQLite for development and testing. To switch to PostgreSQL for production:
- Update connection string in
appsettings.json - Change database provider in
Program.csbuilder.Services.AddDbContext<PmsDbContext>(options => options.UseNpgsql(builder.Configuration.GetConnectionString("DefaultConnection")));
- Follow the component structure for new features
- Use styled-components for styling
- Implement responsive design
- Add proper documentation for new components
- Follow React best practices and hooks guidelines
- Follow RESTful API conventions
- Add proper error handling and validation
- Use Entity Framework best practices
- Add comprehensive logging
- Follow .NET Core coding standards
npm run build
# Deploy the build folder to your web serverdotnet publish -c Release
# Deploy the published files to your server- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is private and confidential.
For technical support or questions, please contact the development team.