1.1 Objective Library Management Application
1.1 Objective Library Management Application
1.1 Objective Library Management Application
INTRODUCTION
1.1 OBJECTIVE
Admin module,
Librarian module and
Student module.
In this programmer, every module has its own login page. It was created to
effectively oversee a library's everyday operations.
To create the app Bibliographic Repository, we used the Flutter mobile app
development platform. The developer tools for the app include Visual Studio Code
and Android studio. The Google Api is used by the location module. For the purpose
of sending recommendations and questions via mail, we used Email Is. All login,
signup, and validation user credentials have undergone Firebase authentication. The
user interface (UI) design of the program necessities the downloading and importing
of numerous modules for fonts and other design elements. Libraries that recently
switched to opensource integrated library application claim that vendors are now
more likely to offer high-quality service in order to maintain a partnership because
they no longer have the power to own the Integrated Library Application software
and bind libraries to strict contracts. This has been the case with the SC LENDS
partnership. The SC LENDS consortium was founded by the South Carolina States
Library and a few neighbourhood public libraries in order to pool resource and take
advantage of the Evergreen Integrated Library Application’s open source nature to
suit their unique requirements.
CHAPTER 4
PROBLEM DESCRIPTION
• The librarian can be asked for new books to add to the column.
Security
A security model is a computer model which is used to identify
and impose security policies. It does not require any prior formation it
may be founded on the access right model or distributing
computing model or computation model.
Borrow item
For each member who borrows a book, the system stores book
ISBN, user ID, date issued, date due to return, date returned.
Again, all borrowing data should be stored into a separate file.
Also the number of available copies for that book should be
decremented. A member can not borrow more than 2 books at a
time.
Return item
When a user return a borrowed book back to the library, the
entry for his borrowing action must be updated with the date
returned. Also for book entry; the number of available copies of
the book must be incremented.
Report
A report is a highly structured piece of writing, designed so that
it can be read quickly, easily and accurately. Reports have clear
structures which make them easy to read; it is important that
you ensure that your report is easy to read as reports are not
necessarily read in consecutive order.
Item management
Any book can have multiple copies, each copy will be
considered a book item in our system. Each book item will have
a unique barcode.
Member management
All members can search the catalog, as well as check-out,
reserve, renew, and return a book.
Author management
This class will encapsulate a book author.
Publisher management
This section offers a quick-start guide to library publishing,
including recommendations for gaining traction for your
initiative, selecting appropriate technologies, developing
thoughtful policies and procedures, and developing
organizational and business models that position you for
success.
Department management
A Departmental Library may be defined as a subject
collection in an academic institution, housed either in a
separate room of the main Library or in some building
outside the main Library and administered either as a part of
a centralized Library system or as a part of the academic
department it serves.
Section management
The Section on Management of Library Associations includes
dynamic leaders from library associations who seek to advocate
for the interests, aspirations and concerns of the library
associations represented among IFLA members.
Topic management
Management refers to series of functions for the organization
and administration of various activities and people in the
organization. Management is essential for all types of
organization and libraries are no exception.
Shelf management
Shelf is when you read every call number on a shelf to ensure
that it is in the proper order.
CHAPTER 6
SYSTEM IMPLEMENTATION
6.1 FLUTTER
Flutter is an open source framework by Google for building beautiful,
natively compiled, multi-platform applications from a single codebase.
6.3 FIREBASE
Firebase is an app development platform that helps you build and grow apps
and games users love. Backed by Google and trusted by millions of businesses
around the world.
6.4 EmailJS:
It allows sending email directly from Javascript, with no backend
development. The developers create one or more email templates (dynamic content
supported) and then trigger an email using our Javascript SDK, specifying the
template, and the dynamic parameters for rendering the email.
flutter_svg: ^1.1.6
firebase_auth: ^4.1.0
firebase_core: ^2.1.1
flutter_launcher_icons: ^0.10.0
google_sign_in: ^5.4.2
provider: ^6.0.4
flutter_bloc: ^8.1.1
shared_preferences: ^2.0.15
location: ^4.4.0
flutter_polyline_points: ^1.0.0
google_maps_flutter: ^2.2.1
url_launcher: ^6.1.6
geocoder2: ^1.4.0
http: ^0.13.5
google_fonts: ^3.0.1
drop_cap_text: ^1.1.3
firebase_messaging: ^14.0.4
flutter_rating_bar: ^4.0.1
CHAPTER 7
SYSTEM DESIGN AND ANALYSIS
To find out the book's status, students must visit the library. In the
event that the book is unavailable, the student will place an advance reservation.
That function is broken in the current application because a student can use the
advance booking option for the same book once, twice, or more, and the person
who already owned the book can also utilize the functionality. The library is the
only place where students can find out the status of a book if they wish to.
Currently, the entire procedure is managed manually. This necessitates keeping
track of the questions submitted by the students in the paper.
8.1 CONCLUSION
Future plans for this facility include the addition of many more features,
including the ability for teachers to add online lectures and video tutorials, as well
as the ability for students to submit assignments online. Another feature that could
be added is a group chat feature where students could discuss a variety of
engineering-related topics, making the project more interactive and better able to
meet the needs of each user.
APPENDICES
APPENDIX 1
9.1 SOURCE CODE
main.dart
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:miniproject/auth_controller.dart';
import 'package:miniproject/colors.dart';
import 'package:miniproject/screens/SignUp/sign_up_screen.dart';
import 'package:miniproject/screens/login.dart';
import 'package:miniproject/splash_screen.dart';
import 'package:miniproject/welcome_screen.dart';
import 'package:get/get.dart';
import 'package:location/location.dart';
import 'package:firebase_core/firebase_core.dart';
Future<void>main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp().then((value)=>Get.put(AuthController()));
runApp(const MyApp());}
class MyApp extends StatelessWidget
{ const MyApp({super.key});
@override
Widget build(BuildContext context) {return
GetMaterialApp( debugShowCheckedModeBanner: false,
title: 'Bibliographic Repository', theme: ThemeData(fontFamily:
'AlbertSans',primaryColor: kPrimaryColor,scaffoldBackgroundColor:
Colors.white, ),
home: SplashScreen(), );
}}
welcome page :
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:miniproject/background.dart';
import 'package:miniproject/colors.dart';
import 'package:miniproject/screens/SignUp/sign_up_screen.dart';
import 'package:miniproject/screens/login.dart';
import 'background.dart';
import 'components/rounded_button.dart';
class Body extends StatelessWidget {
const Body({Key? key}) : super(key:
key); @override
Widget build(BuildContext context) {
Size size = MediaQuery.of(context).size;return Background(
child: SingleChildScrollView( child: Column(mainAxisAlignment:
MainAxisAlignment.center, children: [ const Text( 'Are We Curious ?',
style: TextStyle(fontWeight: FontWeight.bold,
fontSize: 30,color: kPrimaryColor,),),SizedBox(height: size.height*0.03,),
SvgPicture.asset('assets/icons/chat.svg',height: size.height*0.4,),
SizedBox(height: size.height*0.05,),RoundedButton(text: "LOGIN",press: (){
Navigator.push(context,MaterialPageRoute(builder: (context){return
LoginScreen();},),);},),
RoundedButton(text: "SIGN UP",color: kPrimaryLightColor,
textColor: Colors.black, press: (){
Navigator.push(context, MaterialPageRoute(builder: (context){ return
SignUpScreen();},),), },),],),),);}}
first_page :
import '../auth_controller.dart';
/*class FirstPage extends StatelessWidget {
const FirstPage({Key? key}) : super(key: key);@override
Widget build(BuildContext context) {return Container(child:
ElevatedButton(onPressed: () async {
AuthController.instance.logOut();
SharedPreferencessharedPreferences = await
SharedPreferences.getInstance();//sharedPreferences.remove('email');
sharedPreferences.clear();//Get.to(WelcomeScreen());
Navigator.pushReplacement(context, MaterialPageRoute(builder: (_){
return WelcomeScreen();}));},child: Text('Log out'),),); }}*/
class FirstPage extends StatelessWidget {const FirstPage({Key? key}) : super(key:
key); @override
Widget build(BuildContext context) {Size size = MediaQuery.of(context).size;
return Scaffold(backgroundColor: Color.fromRGBO(244, 243, 243, 1),
appBar: AppBar(backgroundColor: kPrimaryColor, elevation:
0,//brightness?:Brightness.lighttitle: Container(
width: size.width*0.1,child: Image.asset('assets/icons/logo.png'),),
actions: [ElevatedButton(onPressed: () async{
AuthController.instance.logOut();
final SharedPreferencessharedPreferences = await
SharedPreferences.getInstance();sharedPreferences.clear();
Get.to(WelcomeScreen());},child: Text('Log Out'), style:
ElevatedButton.styleFrom(
backgroundColor: kPrimaryColor,),),],), body: SingleChildScrollView(
child: SafeArea(child: Column(
mainAxisAlignment: MainAxisAlignment.center, children: [
Padding(padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 25),
//child: Text('EXPLORE YOUR CURIOSITY!', style: TextStyle(fontWeight:
FontWeight.bold, color: kPrimaryColor, fontSize: 30.0),),child: Column(
mainAxisAlignment: MainAxisAlignment.start, children: [
Text('Explore your',style: TextStyle(color: Colors.black87, fontSize: 25),),
SizedBox(height: 5,),
Text('CURIOSITY!',style: TextStyle(color: Colors.black87,fontSize: 40,
fontWeight: FontWeight.bold),), //SizedBox(height: 20,),],),),
SizedBox(height: size.height*0.005,),
Container(height: size.height, child: Column(
children: [GridView.count(
scrollDirection: Axis.vertical,shrinkWrap: true,crossAxisCount: 2,
//scrollDirection: Axis.vertical, //crossAxisSpacing: size.height*0.002, children: [
promoCard('assets/images/books.png','View Books',(){Get.to(() =>
Catalogue());}),
promoCard('assets/images/location.png','Location',(){Get.to(()
=>LocationScreen());}),//promoCard('assets/images/bookshelf.png','My shelf',()
{Get.to(()
=>LocationScreen());}),//promoCard('assets/images/qrCode.png','Scan QR',()
{Get.to(() =>LocationScreen());}),
promoCard('assets/images/hashtag.png','My Account',(){Get.to(()
=>addBooks());}),
promoCard('assets/images/message.png','Contact Us',(){Get.to(()
=>EmailQuery());}),],),
SizedBox(height: size.height*0.005,),
GestureDetector(
onTap: (){Get.to(() =>AboutUs());},child: Container(height: 140, width:
double.infinity, margin: EdgeInsets.all(15.0), decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15.0), color: kPrimaryLightColor,),
child: Row(crossAxisAlignment: CrossAxisAlignment.center,
children: [Padding(padding: const EdgeInsets.only(left: 40.0),child: Container(
width: 100, height: 200, decoration: BoxDecoration(image: DecorationImage(
image: AssetImage('assets/images/informative.png'), fit:
BoxFit.cover,),),),), Text('About Us', style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 30,),),],),), )],),),], ),),),);}}
Widget promoCard(image,text,press){
return AspectRatio(
aspectRatio: 2.6/3,