A simplified clone of OpenTable built with ASP.NET Core MVC and SQLite. This project demonstrates a restaurant listing and reservation system with an admin area for managing restaurants and reservations.
- Features
- Tech stack
- Getting started
- Configuration
- Database
- Project structure
- Running locally
- Tests
- Contributing
- License
- Restaurant listing and detail pages
- Reservation creation (date/time, party size)
- Admin area for managing restaurants and reservations
- Persistent storage using SQLite (included DB file)
- Razor Views (server-side rendered UI)
- Basic validation and server-side checks
- Seed/sample data included in SQLite DB (if present)
- .NET (ASP.NET Core MVC)
- C#
- Razor views (HTML/CSS)
- SQLite (file
OpenTableAppDatabase.sqliteincluded in repo) - Optional: client-side JS for progressive UI improvements
- .NET 7 SDK (or .NET 6) — use the version referenced in
OpenTable.csprojif different. - A command-line terminal (Windows
PowerShell/ macOS / Linux). - Optional: Visual Studio / VS Code for development and debugging.
git clone https://github.com/im-sg/OpenTable_Clone.git
cd OpenTable_Clonedotnet restore
dotnet runBy default the app will run on https://localhost:5001 or http://localhost:5000. Check the console output after dotnet run for the exact URL.
Check appsettings.json for configuration options (logging, connection strings, etc.). If the repository includes an SQLite file (OpenTableAppDatabase.sqlite) the project likely uses a relative connection string like:
"ConnectionStrings": {
"DefaultConnection": "Data Source=OpenTableAppDatabase.sqlite"
}If you want to use your own database, update appsettings.json or the DB context registration in Program.cs.
- This project ships (based on the repo) with a file
OpenTableAppDatabase.sqlite. - If migrations are used, run (if EF Core is configured):
dotnet ef database update(Install the dotnet-ef tool and EF Core packages if needed.)
If the project seeds data on first run, the seed routine will populate restaurants and sample reservations automatically.
/Areas/Admin/ - Admin controllers and views
/Controllers/ - Main MVC controllers (Home, Restaurants, Reservations, etc.)
/Models/ - Domain models (Restaurant, Reservation, User, etc.)
/Views/ - Razor views for the public-facing site
/wwwroot/ - Static files (css, js, images)
Program.cs - App startup (DI, middlewares, routing)
appsettings.json - App configuration & connection strings
OpenTableAppDatabase.sqlite - SQLite DB (if included)
- Add a new model property in
Models/Restaurant.cs(if needed). - Update the EF Core DbContext and create a migration:
dotnet ef migrations add AddNewFieldToRestaurant dotnet ef database update
- Update the admin view to show/edit the new field.
dotnet watch run- Open the
.slnfile (OpenTable.sln) in Visual Studio or the folder in VS Code and use the debugger.
If there are no test projects included, consider adding an xUnit/NUnit project for:
- Unit tests for services and controllers
- Integration tests for key flows (reservation CRUD)
- Fork the repo
- Create a feature branch:
git checkout -b feat/awesome - Make your changes and commit:
git commit -m "Add X" - Push and open a Pull Request
Please include descriptive commit messages and migration files if you modify the DB schema.
- Port in use: the app will fail to start. Kill the process using that port or change the port in
launchSettings.json(or via command-line environment variables). - SQLite locked: ensure no other process (e.g., DB browser) has a lock on the file. Close other tools, or copy the DB to a new file for testing.
Add your license file (e.g., LICENSE — MIT recommended if you want permissive open-source licensing).
Author: im-sg
Project link: https://github.com/im-sg/OpenTable_Clone
OpenTable clone — an ASP.NET Core MVC restaurant listing and reservation system backed by SQLite. Includes admin area and sample database.
OpenTable Clone is a small, educational ASP.NET Core MVC application that mimics the core features of a reservation platform. Built with C#, Razor views, and SQLite, the project demonstrates routing and controller patterns, CRUD operations for restaurants and reservations, and a lightweight admin area for content management. It’s useful as a learning project for developers who want to explore building server-rendered web apps with .NET and practice working with EF Core and SQLite.