You are on page 1of 18

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION,

MUMBAI

A
Micro Project
On
“LIBRARY MANAGEMENT SYSTEM”
For the requirements of partial fulfillment curriculum of

DIPLOMA
In
COMPUTER ENGINEERING
Submitted by
ATHARV VIDYANAND SULTANPURE
MAAJ MUNWAR BHADGAONKAR
SAMI SHAKIR BHADGAONKAR
MALHAR SANJAY KULKARNI
SACHIN IRGONDA KALASAGONDA

UNDER THE GUIDANCE OF

PROF.G. K. BIRANGADDI
DEPARTMENT OF COMPUTER ENGINEERING
SANT GAJANAN MAHARAJ RURAL POLYTECHNIC, MAHAGAON
ACADEMIC YEAR 2022-2023
SANT GAJANAN MAHARAJ RURAL HOSPITAL &RESEARCH CENTER, MAHAGAON

“SANT GAJANAN MAHARAJ RURAL POLYTECHNIC”


A/P –MAHAGAON, SITE –CHINCHEWADI, TAL-GADHINGLAJ, DIST-KOLHAPUR

Certificate
This is to that the following students of 6th Semester of Diploma in Computer Engineering of
Institute SANT GAJANAN MAHARAJ RURAL POLYTECHNIC, MAHAGAON-416502.
(CODE-0965) has completed Micro project on “LIBRARY MANAGMENT” satisfactory in
subject “PWP” subject code 22616 for academic year 2022 to 2023 as prescribed in the
curriculum.

ROLL NO ENROLLMENT NO SEAT NO STUDENT NAME

44 2009650053 ATHARV VIDYNAND SULTANPURE

3 2009650003 MAAJ MUNWAR BHADGAONKAR

4 2109650004 SAMI SHAKIR BHADGAONKAR

22 2009650028 MALHAR SANJAY KULKARNI

11 2009650011 SACHIN IRGONDA KALASGONDA

DATE: /05/2023 PLACE: MAHAGAON

PROF. G. K. BIRANGADDI PROF. R. S. PATIL PROF. D. B. KESTI

(Project Guide) (Head of Department) (Principal)


INDEX

Sr.no Content Page No.

1. Micro-project Proposal -Annexure -I 1-3

2. Micro-project -Annexure -II 4-35

3. Micro-project Evaluation Annexure-III 36-38


PART A- MICRO-PROJECT PROPOSAL

1. Rationale-

A library management system is an essential tool for managing a library's resources, including
books, periodicals, and other media. The primary purpose of a library management system is to
provide librarians and other library staff with the tools they need to efficiently manage library
collections, track borrowing and lending, and ensure that library resources are properly
maintained and organized.

2. Course Outcomes
1. Analyze Principle of Library management system
2. Use library management system software effectively
3. Apply library ethics and intellectual freedom principle
4. Demonstrate effective communication skills
5. Understand trends and issue in library management

3. Literature Review
Python is one of the most popular high-level programming languages. Python offers huge
libraries for different fields like Artificial Intelligence (TensorFlow, PyTorch), Machine
Learning (Pandas, NumPy, Matplotlib), and Game Development (Pyglet, PyGame). We can
also consider Python as the next-generation programming language as it shows its presence
actively in every emerging field of Computer Science.
Library management systems, including their features, functionalities, and advantages. The
authors highlight the importance of library management systems in streamlining library
operations and improving patron services.

4. Proposed Methodology

 In this micro-project, first of all we will focus on selection of appropriate topic for Micro project.
 Select the topic “Library Management”
 Then we will with our brief study on our topic.
 Then we will gather all information based on the topic of micro-project.
 We organized all information about our topic in proper manner.
 We will check or view our micro-project

1|Page
5. Action Plan

Sr No. Details Of Planned Start Planned Finish Name Of


Activity Date Date Responsible
Team Members
Discussion and
Atharv Sultanpure
1 finalization of /05/2023 /05/2023
Sami Bhadgaonkar
topic
Preparation and
Maaj Bhadgaonkar
2 submission of /05/2023 /05/2023
Malhar kulkarni
abstract
Sami Bhadgaonkar
Collection of
3 /05/2023 /05/2023 Malhar kulkarni
data

Preparing Atharv Sultanpure


4 /05/2023 /05/2023
modules Sami Bhadgaonkar

Development of
5 /05/2023 /05/2023 Atharv Sultanpure
program

Atharv Sultanpure
Arranging Maaj Bhadgaonkar
6 project /05/2023 /05/2023 Sami Bhadgaonkar
sequentially Malhar Kulkarni
Sachin Kalasgonda

Atharv Sultanpure
Maaj Bhadgaonkar
Submission Sami Bhadgaonkar
7 /05/2023 /05/2023
Micro-Project Malhar Kulkarni
Sachin Kalasgonda

2|Page
6. Resources required (major resources like raw material, tools, software etc.)

Name of Resource/
Sr No. Specification Qty Remarks
Material
1 Desktop PC
Intel i5, 4GB RAM, 1 Used
128GB

2 Internet Connection 1 Used


Browser Google chrome

3 Software MS-word 2010 1 Used

4 Development Software Python IDLE 3.10(64 bit) 1 Used

7. Name of team members with Roll Number:

Sr Roll Name of Student Enrollment Number


No. No

1 44 Atharv Vidyanand Sultanpure 2009650053

2 3 Maaj Munwar Bhadgaonkar 2009650003

3 4 Sami Shakir Bhadgaonkar 2009650004

4 22 Malhar Sanjay Kulkarni 2009650028

5 11 Sachin Irgonda Kalasgonda 2009650011

3|Page
PART B – Micro–Project Report

1. Brief Description

Flappy Bird is an arcade-style game in which the player controls the bird Faby, which
moves persistently to the right. The player is tasked with navigating Faby through pairs of
pipes that have equally sized gaps placed at random heights. Faby automatically descends
and only ascends when the player taps the touchscreen. Each successful pass through a
pair of pipes awards the player one point. Colliding with a pipe or the ground ends the
gameplay. During the game over screen, the player is awarded a bronze medal if they
reached ten or more points, a silver medal from twenty points, a gold medal from thirty
points, and a platinum medal from forty points.

2. Aim of Micro project


Here the aim of this project is to understand game development using python also to understand
functioning of libraries in Python.

3. Course Outcomes Integrated


In this section, “Flappy Bird Game” we understood the fundamental goal of this project;
it was to understand how game development using Python can be done in simpler way.
Also we understood how the modules and libraries work there and also installation
command that are to be prompted to cmd for necessity of installation fields like classes,
modules etc.Pygame and random is essential module here.

We will look deeper into the „Flappy Bird Game‟ based on its functioning types, brief
introduction, characteristics and also its advantages and disadvantages.

4. Actual Methodology Followed


1. We searched information about selected topic from web sites geeksforgeeks, guru99
and javatpoint,codewithHarry.com,askpython.com
2. We collected the information in word and formatted as per the msbte norms.
3. We finalized the report by editing and correcting the information.

4|Page
5. Source Code
• Main.py

import pygame
import random

from objects import Grumpy, Pipe, Base, Score

# Setup *******************************************

pygame.init()
SCREEN = WIDTH, HEIGHT = 288, 512
display_height = 0.80 * HEIGHT
info = pygame.display.Info()

width = info.current_w
height = info.current_h

if width >= height:


win = pygame.display.set_mode(SCREEN, pygame.NOFRAME)
else:
win = pygame.display.set_mode(SCREEN, pygame.NOFRAME | pygame.SCALED |
pygame.FULLSCREEN)

# win = pygame.display.set_mode(SCREEN, pygame.SCALED | pygame.FULLSCREEN)


clock = pygame.time.Clock()
FPS = 60

# COLORS

RED = (255, 0, 0)
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)

# Backgrounds

bg1 = pygame.image.load('Assets/background-day.png')
bg2 = pygame.image.load('Assets/background-night.png')

bg = random.choice([bg1, bg2])

im_list = [pygame.image.load('Assets/pipe-green.png'), pygame.image.load('Assets/pipe-red.png')]


pipe_img = random.choice(im_list)

5|Page
gameover_img = pygame.image.load('Assets/gameover.png')
flappybird_img = pygame.image.load('Assets/flappybird.png')
flappybird_img = pygame.transform.scale(flappybird_img, (200,80))

# Sounds & fx

die_fx = pygame.mixer.Sound('Sounds/die.wav')
hit_fx = pygame.mixer.Sound('Sounds/hit.wav')
point_fx = pygame.mixer.Sound('Sounds/point.wav')
swoosh_fx = pygame.mixer.Sound('Sounds/swoosh.wav')
wing_fx = pygame.mixer.Sound('Sounds/wing.wav')

# Objects

pipe_group = pygame.sprite.Group()
base = Base(win)
score_img = Score(WIDTH // 2, 50, win)
grumpy = Grumpy(win)

# Variables

base_height = 0.80 * HEIGHT


speed = 0
game_started = False
game_over = False
restart = False
score = 0
start_screen = True
pipe_pass = False
pipe_frequency = 1600

running = True
while running:
win.blit(bg, (0,0))

if start_screen:
speed = 0
grumpy.draw_flap()
base.update(speed)

win.blit(flappybird_img, (40, 50))


else:

if game_started and not game_over:

6|Page
next_pipe = pygame.time.get_ticks()
if next_pipe - last_pipe >= pipe_frequency:
y = display_height // 2
pipe_pos = random.choice(range(-100,100,4))
height = y + pipe_pos

top = Pipe(win, pipe_img, height, 1)


bottom = Pipe(win, pipe_img, height, -1)
pipe_group.add(top)
pipe_group.add(bottom)
last_pipe = next_pipe

pipe_group.update(speed)
base.update(speed)
grumpy.update()
score_img.update(score)

if pygame.sprite.spritecollide(grumpy, pipe_group, False) or grumpy.rect.top <= 0:


game_started = False
if grumpy.alive:
hit_fx.play()
die_fx.play()
grumpy.alive = False
grumpy.theta = grumpy.vel * -2

if grumpy.rect.bottom >= display_height:


speed = 0
game_over = True

if len(pipe_group) > 0:
p = pipe_group.sprites()[0]
if grumpy.rect.left > p.rect.left and grumpy.rect.right < p.rect.right and not pipe_pass and
grumpy.alive:
pipe_pass = True

if pipe_pass:
if grumpy.rect.left > p.rect.right:
pipe_pass = False
score += 1
point_fx.play()

if not grumpy.alive:
win.blit(gameover_img, (50,200))

7|Page
for event in pygame.event.get():

if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE or \
event.key == pygame.K_q:
running = False
if event.type == pygame.MOUSEBUTTONDOWN:
if start_screen:
game_started = True
speed = 2
start_screen = False

game_over = False
# grumpy.reset()
last_pipe = pygame.time.get_ticks() - pipe_frequency
next_pipe = 0
pipe_group.empty()

speed = 2
score = 0
import pygame
import random

from objects import Grumpy, Pipe, Base, Score

# Setup *******************************************

pygame.init()
SCREEN = WIDTH, HEIGHT = 288, 512
display_height = 0.80 * HEIGHT
info = pygame.display.Info()

width = info.current_w
height = info.current_h

if width >= height:


win = pygame.display.set_mode(SCREEN, pygame.NOFRAME)
else:
win = pygame.display.set_mode(SCREEN, pygame.NOFRAME | pygame.SCALED |
pygame.FULLSCREEN)

8|Page
# win = pygame.display.set_mode(SCREEN, pygame.SCALED | pygame.FULLSCREEN)
clock = pygame.time.Clock()
FPS = 60

# COLORS

RED = (255, 0, 0)
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)

# Backgrounds

bg1 = pygame.image.load('Assets/background-day.png')
bg2 = pygame.image.load('Assets/background-night.png')

bg = random.choice([bg1, bg2])

im_list = [pygame.image.load('Assets/pipe-green.png'), pygame.image.load('Assets/pipe-red.png')]


pipe_img = random.choice(im_list)

gameover_img = pygame.image.load('Assets/gameover.png')
flappybird_img = pygame.image.load('Assets/flappybird.png')
flappybird_img = pygame.transform.scale(flappybird_img, (200,80))

# Sounds & fx

die_fx = pygame.mixer.Sound('Sounds/die.wav')
hit_fx = pygame.mixer.Sound('Sounds/hit.wav')
point_fx = pygame.mixer.Sound('Sounds/point.wav')
swoosh_fx = pygame.mixer.Sound('Sounds/swoosh.wav')
wing_fx = pygame.mixer.Sound('Sounds/wing.wav')

# Objects

pipe_group = pygame.sprite.Group()
base = Base(win)
score_img = Score(WIDTH // 2, 50, win)
grumpy = Grumpy(win)

# Variables

base_height = 0.80 * HEIGHT


speed = 0
game_started = False

9|Page
game_over = False
restart = False
score = 0
start_screen = True
pipe_pass = False
pipe_frequency = 1600

running = True
while running:
win.blit(bg, (0,0))

if start_screen:
speed = 0
grumpy.draw_flap()
base.update(speed)

win.blit(flappybird_img, (40, 50))


else:

if game_started and not game_over:

next_pipe = pygame.time.get_ticks()
if next_pipe - last_pipe >= pipe_frequency:
y = display_height // 2
pipe_pos = random.choice(range(-100,100,4))
height = y + pipe_pos

top = Pipe(win, pipe_img, height, 1)


bottom = Pipe(win, pipe_img, height, -1)
pipe_group.add(top)
pipe_group.add(bottom)
last_pipe = next_pipe

pipe_group.update(speed)
base.update(speed)
grumpy.update()
score_img.update(score)

if pygame.sprite.spritecollide(grumpy, pipe_group, False) or grumpy.rect.top <= 0:


game_started = False
if grumpy.alive:
hit_fx.play()
die_fx.play()
grumpy.alive = False
grumpy.theta = grumpy.vel * -2

10 | P a g e
if grumpy.rect.bottom >= display_height:
speed = 0
game_over = True

if len(pipe_group) > 0:
p = pipe_group.sprites()[0]
if grumpy.rect.left > p.rect.left and grumpy.rect.right < p.rect.right and not
pipe_pass and grumpy.alive:
pipe_pass = True

if pipe_pass:
if grumpy.rect.left >
p.rect.right: pipe_pass =
False
score += 1
point_fx.play()

if not grumpy.alive:
win.blit(gameover_img, (50,200))

for event in pygame.event.get():


if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE or \
event.key == pygame.K_q:
running = False
if event.type == pygame.MOUSEBUTTONDOWN:
if start_screen:
game_started = True
speed = 2
start_screen = False

game_over = False
# grumpy.reset()
last_pipe = pygame.time.get_ticks() - pipe_frequency
next_pipe = 0
pipe_group.empty()

speed = 2
score = 0

if game_over:
start_screen = True
grumpy = Grumpy(win)
pipe_img = random.choice(im_list)

11 | P a g e
bg = random.choice([bg1, bg2])

clock.tick(FPS)
pygame.display.update()
pygame.quit()
if game_over:
start_screen = True
grumpy = Grumpy(win)
pipe_img = random.choice(im_list)
bg = random.choice([bg1, bg2])

clock.tick(FPS)
pygame.display.update()
pygame.quit()

12 | P a g e
6. Snaps of Output

13 | P a g e
7. Characteristics of Flappy Bird Game

1. Easy to understand

2. Extremely addictive game

3. Free of cost

4. Easy to learn and play

5. Well-designed User Interface

6. Adorned Sound and graphics are visible

7. Arcades-style game

8. Advantages of Flappy Bird Game


1. It is very easy to understand and play the game

2. Very simple

3. Very addictive

4. Nostalgic Graphics

9. Disadvantages of Flappy Bird Game

1. Breathtaking Difficulty
2. Shallow
3. Fluctuations when the score reaches high

14 | P a g e
10. Actual Resources Used

Name of Resource/
Sr. No. Specification Qty Remarks
Material
Intel i3, 4GB RAM, 128GB SSD
1 Desktop PC Used
1

2 Internet Connection Browser Google chrome 1 Used

3 Software MS-word 2010 1 Used

4 Development Build Python IDLE 3.10(64 bit) 1 Used

11. Skills Developed-


We acquired the knowledge about „Game development in Python‟.

12. References-
 https://www.javatpoint.com/flappybird

 https://en.wikipedia.org/wiki/Flappy_Bird

 https://github.com/topics/flappy-bird-game?l=python

13. Area of future Improvement-


This study alters the layout of the game, including pipe, appearance of agent, and background
of the game in order to make a more fashionable game. Furthermore, this study increases the
number of agents, which makes it easier for agent to achieve higher score. Last but not the least,
author establish an archive point, which means if the player face operation mistake and lead to
game over, they bird will relive before passing the last pipe.

15 | P a g e

You might also like