InoSpace is an ASP.NET Core MVC web application for managing rentable office spaces inside an innovation center. The project combines a public room-browsing experience with an authenticated admin area for requests, rooms, tenants, and contracts.
The application presents available offices and meeting rooms on interactive floor plans. Visitors can choose a space, submit a rental request, and receive email confirmation when SMTP is configured. Administrators can review incoming requests, approve or reject them, manage room statuses, track tenants, and export contract data.
- Public landing page with availability statistics and featured spaces
- Interactive SVG floor plans with selectable rooms
- Booking form with validation and request tracking
- Admin authentication with seeded demo credentials
- Admin dashboard with occupancy, revenue, pending requests, and expiring contracts
- Room, tenant, request, and contract management
- CSV export for contracts
- Email notification service with safe local fallback
- Multilingual UI support for English, Russian, and Romanian
- EF Core migrations and automatic LocalDB seeding
- ASP.NET Core MVC
- Entity Framework Core
- SQL Server LocalDB
- Cookie authentication
- Razor Views
- Bootstrap, custom CSS, and optional Tailwind CLI build step
- MailKit for SMTP email delivery
InoSpace/
+-- Controllers/ MVC controllers for public and admin workflows
+-- Data/ EF Core DbContext, migrations support, demo seeding
+-- Migrations/ Database schema migrations
+-- Models/ Domain entities: rooms, floors, tenants, contracts, requests
+-- Services/ Email, translation, password hashing, DB maintenance
+-- ViewModels/ View-specific models
+-- Views/ Razor pages and layouts
+-- Styles/ Source stylesheet for optional Tailwind compilation
+-- wwwroot/ Static assets, CSS, JS, images, and vendor libraries
- .NET SDK 10.0 or newer
- SQL Server LocalDB
- Visual Studio, Visual Studio Code, or another .NET-capable IDE
git clone https://github.com/your-username/inospace.git
cd inospace
dotnet restore InoSpace/InoSpace.csproj
dotnet run --project InoSpace/InoSpace.csprojOpen the HTTPS URL printed in the terminal.
On first startup, the app applies EF Core migrations and seeds demo data automatically.
URL: /admin/login
Username: admin
Password: Admin123!
For a real deployment, change the seeded admin password and move credentials to a secure secret store.
The default database connection uses SQL Server LocalDB:
"DefaultConnection": "Server=(localdb)\\MSSQLLocalDB;Database=InoSpaceDb;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True"Email is disabled by default in the public repository. To configure SMTP, copy the values from InoSpace/appsettings.Example.json into user secrets or a local-only settings file.
Recommended local setup:
dotnet user-secrets init --project InoSpace/InoSpace.csproj
dotnet user-secrets set "Email:Enabled" "true" --project InoSpace/InoSpace.csproj
dotnet user-secrets set "Email:SmtpHost" "smtp.gmail.com" --project InoSpace/InoSpace.csproj
dotnet user-secrets set "Email:Username" "your-email@example.com" --project InoSpace/InoSpace.csproj
dotnet user-secrets set "Email:Password" "your-app-password" --project InoSpace/InoSpace.csprojThe database is modeled with EF Core and includes:
FloorsRoomsTenantsRentalRequestsContractsAdminUsers
The seed data creates two floors, realistic rentable rooms, tenants, active contracts, pending rental requests, and one admin account.
bin/,obj/,.vs/, generated email files, local databases, and secrets are ignored.wwwroot/css/app.cssis committed, so the app can run even without the Tailwind standalone executable.- The optional Tailwind build target runs only if
InoSpace/tools/tailwindcss.exeexists locally.
Created by Ilie Nedelcu as a practice project for managing office rental spaces.


