Sample Microproject Report
Sample Microproject Report
in
Submitted to the Course In charge , Problem Solving with JavaScript, Shah and
Anchor Kutchhi Engineering college , Mumbai in partial fulfillment of the
requirement for the award of SLA-Micro project , First Year, (FY Sem-II) in
Electronics & Telecommunication Engineering during academic year
2025-26
(Course In charge )
1. Title of the project: CAMPUSphere :
College Resources Allocation System of Lab/Classrooms
(For Teachers)
2. Abstract :
Campus resource allocation is a common challenge in educational institutes
where manual scheduling often leads to conflicts, under-utilization of
infrastructure, and workload inefficiency. This project presents a Java-based
scheduling system that accepts requirements from multiple teachers, checks
availability of classrooms, labs, reference books, and time slots, and
automatically assigns resources while avoiding conflicts. The purpose of this
system is to reduce manual workload, improve utilization of physical and
academic resources, and enhance teaching quality. The system uses an
object-oriented approach with classes for Teachers, Classrooms, Labs, and
Reference Books, including a scheduler that resolves conflicts based on
priority and availability. The implementation was tested with various use
cases including conflict scenarios, invalid inputs, and simultaneous requests,
which verified its accuracy and robustness. This work has significant
implications for educational resource management and offers potential for
extension into intelligent and dynamic scheduling systems with real-time
adaptation. The outcome demonstrates improved planning efficiency and
serves as a foundation for future smart campus applications.
3. Introduction :
3.1 Background of the Problem
4. Problem Definition
4.1 Problem Statement
Educational institutions face significant challenges in managing and allocating
campus resources such as classrooms, laboratories, reference books, and time
slots for teaching activities. Traditionally, these allocations are carried out
manually by administrative staff or department coordinators. This manual
process is not only time-consuming but also highly prone to human error.
Common issues include overlapping schedules, double booking of classrooms
or laboratories, inefficient utilization of available infrastructure, and lack of
transparency in the allocation process.
With the increasing number of teachers, courses, and limited physical resources,
the complexity of scheduling grows exponentially. Manual systems are unable
to handle multiple requests simultaneously or adapt quickly to changes in
requirements. As a result, teaching efficiency is affected, academic planning
becomes difficult, and institutional resources are often underutilized or wasted.
Therefore, there is a strong need for an automated system that can manage
campus resource allocation efficiently, accurately, and fairly.
6. System Design
6.1Algorithm :
Algorithm Steps:
1. Start
2. Input teacher details and requirements
3. Fetch list of classrooms, labs, books
4. Check availability for requested time slot
5. If resource available → assign
6. Else → check next available resource
7. Handle conflicts using priority rules
8. Store allocation details
9. Display final allocation
10. End
Teacher Class
Stores information such as teacher ID, name, department, subject
handled, and resource requirements. Each teacher object represents an
individual request for resource allocation.
Classroom Class
Represents physical classrooms and includes attributes like room number,
room type (lecture hall, smart classroom), capacity, and availability
status.
Lab Class
Stores laboratory-related details such as lab ID, lab type (computer lab,
electronics lab), available equipment, and time slot availability.
ReferenceBook Class
Maintains information about academic resources including book ID, title,
subject, author, and availability status. This allows the system to allocate
reference books along with physical resources.
Using separate classes for each entity improves modularity, readability, and
ease of future expansion.
ArrayList
Used to store dynamic lists of teachers, classrooms, laboratories, and
reference books. It allows easy addition, removal, and traversal of
elements, which is useful during availability checks and scheduling
operations.
HashMap
Used to store key-value pairs for fast lookup operations. For example:
o Mapping teacher IDs to allocated resources
o Mapping time slots to classrooms or labs
HashMap provides constant-time access, making conflict detection
and resolution efficient.
ResourceSlot Object
Combines information about a specific resource (classroom or lab) with
its allocated teacher and time slot. This helps track usage and prevent
double booking.
TimeSlot Object
Represents a specific day and time interval. It enables the system to
compare requested time slots with existing allocations and detect
overlaps.
Custom objects allow precise control over scheduling logic and make the
system more adaptable to future enhancements.
Thus, the data structures used in the project play a crucial role in ensuring
accurate, conflict-free, and efficient campus resource allocation.
6.4Explanation of logic:
During this iteration, the scheduler validates the availability of each requested
resource by comparing the requested time slot with existing allocations.
Constraint checks are performed to ensure that no resource is assigned to more
than one teacher at the same time. These constraints include classroom
availability, laboratory usage limits, reference book availability, and time slot
overlaps.
Once resources are successfully allocated, the system updates allocation records
and marks the assigned resources as occupied for the corresponding time slots.
All allocation details are stored in structured data formats or a database for
future reference and reporting. Finally, the system generates clear output in the
form of allocation summaries and resource usage reports.
7. Implementation
This section describes the tools, technologies, and implementation details used
to develop the Campus Resources Allocation System. It explains the software
and hardware requirements as well as the functionality of the key methods used
in the system.
Software Requirements
Hardware Requirements
import [Link].*;
import [Link].*;
import [Link].*;
import [Link];
import [Link].*;
static {
try {
[Link]("[Link]");
} catch (Exception e) {
[Link](null, "MySQL Driver not found");
[Link](0);
}
}
if(getModel().isRollover())
[Link](new Color(0, 51, 153));
else
[Link](new Color(30, 80, 180));
[Link](0,0,getWidth(),getHeight(),30,30);
[Link](g);
}
[Link](center, [Link]);
add(panel);
}
}
// ================= HOME PAGE =================
static class HomePage extends JFrame {
String[] departments = {
"Chemical Engineering","Mechanical Engineering",
"Electronics Engineering","EXTC",
"Computer Science","Information Technology",
"Cyber Security"
};
HomePage() {
setTitle("CAMPUSsphere");
setSize(1400,700);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new BorderLayout());
[Link](search, [Link]);
[Link](title, [Link]);
add(top,[Link]);
ImageIcon bannerIcon = new ImageIcon("src/images/[Link]");
Image img = [Link]().getScaledInstance(1100, 220,
Image.SCALE_SMOOTH);
JLabel banner = new JLabel(new ImageIcon(img));
[Link]([Link](10,10,10,10));
add(banner, [Link]);
[Link](new GridLayout(2,4,15,15));
[Link](false);
for(String d:departments){
RoundedButton b = new RoundedButton(d,
[Link]("[Link]")); //
ICON ADDED
[Link](new Dimension(420,100));
[Link](e->{
setVisible(false);
new DepartmentFrame(this,d).setVisible(true);
[Link](new Dimension(280, 65));
[Link](new Insets(10,20,10,20));
});
[Link](b);
}
[Link](features, [Link]);
add(mainCenter,[Link]);
JLabel footer = new JLabel(
"© 2026 CAMPUSsphere | Engineering Resource Management
System",
[Link]
);
[Link](new Font("Times New Roman", [Link], 12));
[Link]([Link](10,10,10,10));
add(footer, [Link]);
setTitle(d+" Department");
setSize(700,520);
setLocationRelativeTo(null);
setLayout(new BorderLayout());
loadTeachers();
[Link](e->{
String name=[Link]();
if(name==null) return;
new
LoginDialog(this,"TEACHER",department,[Link](name)).setVisible(tru
e);
});
[Link](e->
new
LoginDialog(this,"ADMIN",department,null).setVisible(true));
[Link](e ->
new AddTeacherDialog(this,
department).setVisible(true)); // NEW
[Link](e-
>{dispose();[Link](true);});
}
void loadTeachers(){
[Link]();
[Link]();
try(Connection con=getConnection()){
PreparedStatement ps =
[Link](
"SELECT full_name,username FROM users WHERE
role='TEACHER' AND department=?");
[Link](1,department);
ResultSet rs=[Link]();
while([Link]()){
[Link]([Link](1));
[Link]([Link](1),[Link](2));
}
}catch(Exception e){
[Link](this,"Error loading
teachers");
}
}
}
// ================= ADD TEACHER DIALOG (NEW) =================
static class AddTeacherDialog extends JDialog {
JTextField name = new JTextField();
JTextField username = new JTextField();
JPasswordField password = new JPasswordField();
[Link](e -> {
try(Connection con = getConnection()) {
PreparedStatement ps = [Link](
"INSERT INTO users(full_name, username,
password, role, department) VALUES (?,?,?,?,?)");
[Link](1, [Link]());
[Link](2, [Link]());
[Link](3, new String([Link]()));
[Link](4, "TEACHER");
[Link](5, dept);
[Link]();
setTitle(role+" Login");
setSize(350,220);
setLocationRelativeTo(p);
setLayout(new GridLayout(5,1,5,5));
if(u!=null) [Link](u);
add(new JLabel("Username"));
add(user);
add(new JLabel("Password"));
add(pass);
[Link](e->auth());
}
void auth(){
try(Connection con=getConnection()){
PreparedStatement ps=
[Link](
"SELECT full_name FROM users WHERE
username=? AND password=? AND role=? AND department=?");
[Link](1,[Link]());
[Link](2,new String([Link]()));
[Link](3,role);
[Link](4,dept);
ResultSet rs=[Link]();
if([Link]()){
dispose();
new TeacherPanel([Link](1)).setVisible(true);
} else {
[Link](this,"Invalid
credentials");
}
}catch(Exception ex){
[Link](this,[Link]());
}
}
}
// ================= TEACHER PANEL =================
static class TeacherPanel extends JFrame {
String teacher;
TeacherPanel(String t){
teacher=t;
setTitle("Teacher - "+teacher);
setSize(520,380);
setLocationRelativeTo(null);
setLayout(new GridLayout(8,2,8,8));
add(new JLabel("Floor"));add(floor);
JButton load=new JButton("Load Rooms");add(load);add(rooms);
add(new JLabel("Start Time"));add(start);
add(new JLabel("End Time"));add(end);
add(book); add(logout);
[Link](e->loadRooms());
[Link](e->schedule());
[Link](e->{ dispose(); new
HomePage().setVisible(true); });
}
void loadRooms(){
[Link]();
try(Connection con=getConnection()){
PreparedStatement ps=
[Link](
"SELECT room_code,room_name,floor FROM
rooms WHERE floor=?");
[Link](1,[Link]([Link]()));
ResultSet rs=[Link]();
while([Link]())
[Link](new RoomItem(
[Link](1),[Link](2),[Link](3)));
}catch(Exception e){
[Link](this,"Invalid floor");
}
}
void schedule(){
RoomItem r=(RoomItem)[Link]();
if(r==null) return;
try(Connection con=getConnection()){
PreparedStatement check =
[Link](
"SELECT * FROM timetable WHERE room_code=?
AND floor=? " +
"AND NOT (end_time<=? OR
start_time>=?)");
[Link](1,[Link]);
[Link](2,[Link]);
[Link](3,[Link]([Link]()));
[Link](4,[Link]([Link]()));
if([Link]().next()){
[Link](this,"Room already
booked!");
return;
}
PreparedStatement ps=
[Link](
"INSERT INTO timetable
VALUES(NULL,?,?,?,?,?)");
[Link](1,teacher);
[Link](2,[Link]);
[Link](3,[Link]);
[Link](4,[Link]([Link]()));
[Link](5,[Link]([Link]()));
[Link]();
}catch(Exception e){
[Link](this,[Link]());
}
}
}
1. checkAvailability()
This function is responsible for verifying whether the requested resources are
available during the specified time slot.
It scans the list of classrooms, laboratories, and reference books stored in
collection data structures.
It compares the requested time slot with already allocated time slots to
detect overlaps.
If the resource is free, the function marks it as available.
If the resource is already assigned, it flags a conflict for further
processing.
This function plays a critical role in ensuring that no resource is double-booked.
2. resolveConflict()
This function is invoked when a conflict is detected during availability
checking.
It searches for alternative resources of the same type (for example,
another classroom or lab).
Priority rules such as department preference or first-come-first-serve may
be applied.
If an alternative resource is found, it is selected for allocation.
If no suitable alternative is available, the system generates a warning or
rejection message.
This function ensures fairness and continuity of the allocation process even
under resource constraints.
3. allocateResources()
This function performs the final assignment of resources to teachers.
It assigns the selected classroom, laboratory, reference books, and time
slot to the teacher.
Allocation records are updated in the system’s data structures or database.
Resource availability status is updated to prevent future conflicts.
A confirmation output is generated for the teacher or administrator.
This function integrates all previous checks and ensures consistent and accurate
allocation.
8. Output / Screenshots
9. Results and Discussion
8.1 Achievement of Objectives
One of the major advantages of the proposed system is its modular and scalable
design, which allows easy modification and future expansion. The automation
of availability checking and conflict resolution reduces human error and
enhances reliability. Additionally, the system ensures better time and resource
optimization by dynamically allocating available slots based on predefined
constraints. The use of Java provides platform independence and robustness,
while optional database integration allows persistent storage and efficient data
handling. These features align with modern software engineering practices
aimed at improving system maintainability and performance [3].
Despite its effectiveness, the system has certain limitations. The accuracy of the
results is highly dependent on the correctness and completeness of the input
data. The current implementation may experience performance degradation
when handling a very large number of resources or concurrent requests.
Furthermore, the system provides limited user interaction, as it primarily
focuses on backend logic rather than an advanced graphical user interface.
These limitations can be addressed in future work by incorporating optimized
algorithms, enhanced UI components, and support for concurrent processing
[4].
10. Conclusion
The Smart Laboratory Allocation (SLA) system was successfully designed and
implemented to automate the process of scheduling and allocating academic
resources such as laboratories, classrooms, teachers, and reference materials.
The system applies object-oriented principles and structured scheduling logic to
ensure efficient utilization of available resources while minimizing conflicts and
manual intervention.
Experimental results indicate that the SLA system reliably identifies available
time slots, resolves scheduling conflicts, and allocates resources according to
predefined constraints. The modular architecture enhances system
maintainability and allows future scalability, such as integration with advanced
databases, real-time user interfaces, and multi-user access. By reducing human
dependency and scheduling errors, the system significantly improves
operational efficiency and accuracy in academic resource management.
Overall, the SLA system demonstrates the effective application of software
engineering principles to solve real-world scheduling problems. With further
optimization and feature enhancement, the proposed system can be extended to
support large-scale institutional environments, contributing to smarter and more
efficient educational infrastructure management.
11. References
A. T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein,
Introduction to Algorithms, 3rd ed., MIT Press, Cambridge, MA,
USA, 2009.
B. E. Gamma, R. Helm, R. Johnson, and J. Vlissides,
Design Patterns: Elements of Reusable Object-Oriented Software,
Addison-Wesley, 1994.
C. H. Schildt,
Java: The Complete Reference, 11th ed., McGraw-Hill Education,
New York, USA, 2019.
D. Sommerville,
Software Engineering, 10th ed., Pearson Education, 2016.
E. J. W. Weiss,
Data Structures and Algorithm Analysis in Java, Pearson Education,
2014.
G. M. Al-Husseini et al.,
“A Smart Campus Framework Based on IoT and Cloud Computing,”
IEEE Access, vol. 7, pp. 150–162, 2019.
I. P. Van Hentenryck,
Constraint Satisfaction in Logic Programming, MIT Press, 1989.