Exam Hall Booking System(.NET Core Web API +React + SQL Server )

Sachinthana Buddhika
5 min readJun 20, 2024

--

Introduction

The Exam Hall Booking System streamlines the process of reserving exam halls within educational institutions. It caters to lecturers, academic staff, administration, and students, offering a user-friendly interface for booking halls like the Drawing Office Exam Hall and Computer Department Exam Hall( there are two Exam Halls). This system enhances scheduling for various exam types(End Exam , Mid Exam , Quiz , Assignment ) while ensuring administrative oversight.

How this Exam Hall Booking System Work

Click below user guide to look how this system work step by step,

Technology Stack

Languages : HTML, CSS, JavaScript, C#

Tools : VS Code, Visual Studio, MS SQL Server Management Studio, Jira, Postman, GitHub, Figma

Frameworks : React.js, .NET Core Web API, Bootstrap

Database :MySQL (Azure Server)

Source Code

This is the Exam Hall Booking System Source Code . Follow below instruction to clone this in to your machine . Don’t forget to give star ⭐ for this repository .

step 1 :

Clone this repository

git clone https://github.com/CydexCode/ExamHallBookingSystem

I will show how to clone this repository in to your machine using Visual Studio

1 . Open your Visual Studio IDE and got to Clone Section

2 . Copy and past the repository link and select project location

then click the clone button to clone the Source Code

step 2 :

Setup SQL Database,

select the ExamHallBooking.DataAccess project layer -> Data -> Migartions

delete that two files inside the Migration Folder

Then move to Presentation Project layer -> appsetting.js to Setup your SQL Connection link

set your SQL Server Studio name and give suitable database name . use below code for it ,

"AllowedHosts": "*",
"ConnectionStrings": {
"DevConnection": "Server=Your sever name ;Database=ExamHallBooking;Trusted_Connection=True;MultipleActiveResultSets=True;"
}

then open the Nuget Package Manager Console ( Tools-> Nuget Package Manager -> Package Manager Console )

Change Default project in to DataAccess Layer like this

then run below command


Add-Migration -Name Initial -OutputDir "Data/Migrations"

after that update the database using below command


Update-Database

the go to the database and look your data tables

thies are the two tables for two Exam hallls

lets create Login system table.

For that open new query ( right click the database and select new query)

input the below code and execute

GO
/** Object: Table [dbo].[Login] Script Date: 05/19/2023 01:22:24 **/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Login](
[Id] [int] IDENTITY(1,1) NOT NULL,
[LOGIN_NAME] [nvarchar](50) NULL,
[PASSWORD] [nvarchar](50) NOT NULL,
[MOBILE] [nvarchar](50) NULL,
[NAME] [nvarchar](50) NULL,
CONSTRAINT [PK_Login] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/** Object: StoredProcedure [dbo].[sp_Update] Script Date: 05/19/2023 01:22:26 **/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
create PROCEDURE [dbo].[sp_Update]
@ID INT,
@NAME NVARCHAR(50),
@LOGIN_NAME NVARCHAR(50),
@PASSWORD NVARCHAR(50),
@MOBILE NVARCHAR(50)
AS
BEGIN
UPDATE [dbo].[Login]
SET [NAME] =@NAME
,[LOGIN_NAME]=@LOGIN_NAME
,[PASSWORD]=@PASSWORD
,[MOBILE]=@MOBILE
WHERE ID=@ID
END
GO
/** Object: StoredProcedure [dbo].[sp_Insert] Script Date: 05/19/2023 01:22:26 **/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_Insert]
@ID INT,
@NAME NVARCHAR(50),
@LOGIN_NAME NVARCHAR(50),
@PASSWORD NVARCHAR(50),
@MOBILE NVARCHAR(50)
AS
BEGIN
INSERT INTO [dbo].[Login]
([NAME]
,[LOGIN_NAME]
,[PASSWORD]
,[MOBILE])
VALUES
(@NAME
,@LOGIN_NAME
,@PASSWORD
,@MOBILE)

END
GO
/** Object: StoredProcedure [dbo].[sp_GetUserDetails] Script Date: 05/19/2023 01:22:26 **/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetUserDetails]
AS
BEGIN
SELECT * FROM dbo.Login
END
GO
/** Object: StoredProcedure [dbo].[sp_deleteUser] Script Date: 05/19/2023 01:22:26 **/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_deleteUser]
@Id INT
AS
BEGIN
DELETE FROM DBO.Login WHERE Id=@Id
END
GO
/** Object: StoredProcedure [dbo].[GetLoginDetails] Script Date: 05/19/2023 01:22:26 **/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[GetLoginDetails]
@loginName VARCHAR(50),
@password VARCHAR(50)
AS
BEGIN
SELECT * FROM dbo.Login WHERE LOGIN_NAME=@loginName and PASSWORD=@password
END
GO

step 3:

Setup Mail sending Feature,

in the appsetting.js file you can below code part

you have to add your Mail and App Password here

Now all the things setup in your project. before Run the Project read the User Guide.

Read below Read.me file to get more idea about this project

Thank you for your support!

Follow CydexCode on YouTube , TikTok , Linkedin ,GitHub , Facebook , and Telegram for more exciting content! 🎉📱💻📢

--

--

Sachinthana Buddhika

Learn to code, build impactful projects, and earn certifications with CydexCode. Join our community of aspiring develop