faculty allocation system

Upload: toarnabch

Post on 03-Mar-2016

17 views

Category:

Documents


0 download

DESCRIPTION

Project document done in Oracle Forms.

TRANSCRIPT

  • Faculty Allocation System

    Group members:

    1. Rituparna Hazra

    2. Dipayan Mondal

    3. Parnab Ghosh

    4. Rudrashish Bose

    5. Asish Bhakat

    6. Sanjoy Mondal.

  • Acknowledgement:

    We take this opportunity to express my profound

    gratitude and deep regards to my faculty

    Mr. ARNAB CHAKRABORTY for his exemplary

    guidance, monitoring and constant

    encouragement throughout the course of this

    project. The blessing, help and guidance given by

    his time to time shall carry me a long way in the

    journey of life on which I am about to embark.

    We are obliged to our all project team members for

    the valuable information provided by them in their

    respective fields. We are grateful for their

    cooperation during the period of assignment.

    1. Rituparna Hazra

    2. Dipayan Mondal

    3. Parnab Ghosh

    4. Rudrashish Bose

    5. Asish Bhakat

    6. Sanjoy Mondal.

  • Contents:

    1. Acknowledgment

    2. Project objective

    3. Project scopes

    4. Requirement specification

    5. Schema, E-R Diagram and Screenshots

    6. Codes implemented

    7. Future scope of the project

    8. Certificate.

  • Project objective:

    Develop a Faculty Allocation System so that an

    administrator can add a batch, update the

    components of the project, and create a

    particular batch.

    The primary goal of the project is to:

    To allocate faculty to subjects in a routine

    automatically to batch

    Administrator can allocate faculty to the

    periods.

    Administrator can allocate the choices of

    the batch and day according to the

    availability of faculty of a subject

    Faculty can apply for leave for a particular

    day.

  • Project scope:

    It will provide a platform for the

    administrator to easily handle the faculty

    and their allocation.

    The system will provide batch routine for

    the institution.

    The system will help the administrator to

    keep the faculty information and routine

    information in the form of list.

    The Administrator can control the

    maximum classes allotted for a particular

    faculty.

    The system will guard against null or

    invalid operations using alerts.

    Faculty Report, Routine Report, Student

    Report and Faculty Leave Report can be

    accessed independently.

  • Requirement specification:

    Domain description:

    Faculty Allocation deals with the Administrator

    being able to add, store and update the details of

    the Faculty and subject as well as topics.

    Problem description:

    Administrator can face massive problems in

    logistics if allocation of Faculty is done by hand

    and paper or using a text file. It will get very

    complicated if the allocation needs to altered

    based on availability, also data redundancy is a

    major possibility. Thus by the use of this software

    this problem can be easily solved.

    Functional requirements:

    Some important features of this project are:

    Add Faculty Details: Administrator can add

    faculty details like Faculty name, subject,

    batch, join date uniquely identified by

    FACULTY ID.

  • Routine: We can allocate faculty to classes

    in a routine based on the subject and available

    faculty for a particular batch and day.

    Subject: Admin can assign maximum

    classes for a particular subject and insert topics

    for each of those classes for that subject.

    Faculty Leave: Administrator can update

    the routine by setting OFF periods for faculty

    applying for leave for a particular day.

    View Routine: Routines of all the batches

    can be viewed as a report on a separate form.

    View Faculty Report: Administrator can

    view Faculty Details as a report on a separate

    form

    View Subject Details Report: Administrator

    can view Subject details like Subject Name, and

    topics on a separate form

    View Subject Record Report: Administrator

    can view details like Subject Name, Maximum

    Classes, Highest Marks and Subject type

    (Theory/Practical).

  • Hardware requirement:

    Memory: Ram 512mb and above.

    Processor: Pentium 4 and above.

    Software requirement:

    Operating system: Windows XP, Windows

    Server 2003, Windows NT Server 4.0,

    Windows 2000 SP1.

    Oracle 10G, Oracle Developer Suite.

    Browser JVM compatible.

    Schema Design

    Faculty_Details Faculty_id, Faculty_name, Subject_name, Batch_number, Join_date

    Routine_Details Day, Period, faculty_name, Subject_name, Batch_number

    Leave_Details Faculty_name, Day

    Subject_Details Subject_name, Topic

    Subject_Records Subject_name, Total_number_of_class, Highest_marks, Type

  • E-R Diagram

  • Faculty Details Form

    Declare

    a number;

    myfid faculty_details.fid%type;

    myfname faculty_details.fname%type;

    mysub faculty_details.sub%type;

    mybatch faculty_details.batch%type;

    myjdate faculty_details.jdate%type;

    begin

    set_item_property('ti3',enabled,property_false);

    set_item_property('ti4',enabled,property_false);

    select count(*) into a

    from faculty_details;

    if (a=0) then

    :global.reccount:=0;

    :global.currecno:=0;

    message('I am in the then block...');

    else

    message('I am in the else block...');

    :global.currecno:=1;

    :global.reccount:=a;

    :di3:=:global.currecno||'/'||:global.reccount;

  • select fid,fname,sub,batch,jdate into myfid,myfname,mysub,mybatch,myjdate from

    (select rownum rn,fid,fname,sub,batch,jdate from faculty_details order by rownum)

    where rn=1;

    :ti49:=myfid;

    :ti2:=myfname;

    :di1:=mysub;

    :di73:=mybatch;

    :forms_date:=myjdate;

    end if;

    end;

    declare

    a number;

    myfid faculty_details.fid%type;

    myfname faculty_details.fname%type;

    mysub faculty_details.sub%type;

    mybatch faculty_details.batch%type;

    myjdate faculty_details.jdate%type;

    begin

    set_item_property('ti3',enabled,property_false);

    set_item_property('ti4',enabled,property_false);

    select count(*) into a from faculty_details;

    if (a=0) then

    :global.reccount:=0;

    :global.currecno:=0;

  • else

    if (:global.currecno=:global.reccount) then

    a := show_alert('lastrecord');

    else

    :global.currecno:=:global.currecno + 1;

    select fid,fname,sub,batch,jdate into myfid,myfname,mysub,mybatch,myjdate from

    (select rownum rn,fid,fname,sub,batch,jdate from faculty_details order by rownum)

    where rn=:global.currecno;

    :ti49:=myfid;

    :ti2:=myfname;

    :di1:=mysub;

    :di73:=mybatch;

    :forms_date:=myjdate;

    :di3:=:global.currecno||'/'||:global.reccount;

    end if;

    end if;

    end;

    Declare

    a number;

    myfid faculty_details.fid%type;

    myfname faculty_details.fname%type;

    mysub faculty_details.sub%type;

    mybatch faculty_details.batch%type;

    myjdate faculty_details.jdate%type;

  • begin

    set_item_property('ti3',enabled,property_false);

    set_item_property('ti4',enabled,property_false);

    select count(*) into a

    from faculty_details;

    if (a=0) then

    :global.reccount:=0;

    :global.currecno:=0;

    else

    if (:global.currecno=1) then

    a := show_alert('firstrecord');

    else

    :global.currecno:=:global.currecno - 1;

    select fid,fname,sub,batch,jdate into myfid,myfname,mysub,mybatch,myjdate from

    (select rownum rn,fid,fname,sub,batch,jdate from faculty_details order by rownum )

    where rn=:global.currecno;

    :ti49:=myfid;

    :ti2:=myfname;

    :di1:=mysub;

    :di73:=mybatch;

    :forms_date:=myjdate;

    :di3:=:global.currecno||'/'||:global.reccount;

    end if;

    end if;

    end;

  • declare

    a number;

    myfid faculty_details.fid%type;

    myfname faculty_details.fname%type;

    mysub faculty_details.sub%type;

    mybatch faculty_details.batch%type;

    myjdate faculty_details.jdate%type;

    begin

    set_item_property('ti3',enabled,property_false);

    set_item_property('ti4',enabled,property_false);

    select count(*) into a from faculty_details;

    if (a=0) then

    :global.reccount:=0;

    :global.currecno:=0;

    message('I am in the then block...');

    else

    message('I am in the else block...');

    :global.currecno:=:global.reccount;

    :di3:=:global.currecno||'/'||:global.reccount;

    select fid,fname,sub,batch,jdate into myfid,myfname,mysub,mybatch,myjdate from (

    select rownum rn,fid,fname,sub,batch,jdate from faculty_details order by rownum )

    where rn=:global.reccount;

    :ti49:=myfid;

    :ti2:=myfname;

    :di1:=mysub;

  • :di73:=mybatch;

    :forms_date:=myjdate;

    end if;

    end;

    set_item_property('ti3',enabled,property_true);

    set_item_property('ti4',enabled,property_true);

    :ti49:='';

    :ti2:='';

    :di73:='';

    :di1:='';

    :forms_date:='';

    go_item('ti49');

    set_item_property('ti3',enabled,property_false);

    set_item_property('ti4',enabled,property_false);

    :ti49:='';

    :ti2:='';

    :ti3:='';

  • :di73:='';

    :di1:='';

    :forms_date:='';

    go_item('ti49');

    set_item_property('ti3',enabled,property_false);

    set_item_property('ti4',enabled,property_false);

    :ti49:='';

    :ti2:='';

    :ti3:='';

    :di73:='';

    :di1:='';

    :forms_date:='';

    go_item('ti49');

    Declare

    a number;

  • begin

    set_item_property('ti3',enabled,property_true);

    set_item_property('ti4',enabled,property_true);

    if :ti2 is null or :ti3 is null or :ti4 is null or :ti49 is null or :forms_date is null then

    a:=show_alert('blankfield');

    else

    insert into faculty_details values (:ti49,:ti2,:ti3,:ti4,:forms_date);

    standard.commit;

    :global.reccount:=:global.reccount+1;

    :global.currecno:=:global.reccount;

    message('record inserted successfully');

    message(' ');

    :di3:=:global.currecno||'/'||:global.reccount;

    end if;

    end;

    begin

    delete from faculty_details where fid =:block3.ti49;

    standard.commit;

    :global.reccount:=:global.reccount-1;

    :global.currecno:=:global.reccount;

    :di3:=:global.currecno||'/'||:global.reccount;

  • message('record deleted successfully');

    message(' ');

    end;

    exit_form;

    Class Details Form

    :ti2:='';

    :ti4:='';

    :ti5:='';

    go_item('LIST42');

    declare

    a number;

    cnt number := 0;

  • x number;

    tot number;

    begin

    select count(*) into cnt from sub_details where (SUBJECT_NAME=:LIST42);

    select count(*) into x from sub_record where (SUBJECT_NAME=:LIST42 and

    MAX_CLASS = 0) ;

    go_item('LIST42');

    if(x=1 and :ti4 20) then

    a := show_alert('MAXCLASS');

    elsif(:ti2 is null) then

    a := show_alert('EMPREC');

    else

    insert into sub_details values (:LIST42,:ti2);

    standard.commit;

    :ti3:=cnt+1||'/'||tot;

    end if;

    end;

  • declare

    a number;

    begin

    select HMARKS into :ti5 from sub_record where (SUBJECT_NAME=:LIST42);

    select MAX_CLASS into :ti4 from sub_record where

    (SUBJECT_NAME=:LIST42);

    end;

    Routine Details

    declare

    a number;

    begin

    if :bat is null then

    a:= show_alert('nobatch');

    else

    select count(*) into a from faculty_details where batch= :bat;

    a:= populate_group('rg1');

    populate_list('SUB','rg1');

    end if;

    end;

  • declare

    b number;

    begin

    select count(*) into b from faculty_details where sub= :sub;

    b:= populate_group('rg2');

    populate_list('fac','rg2');

    end;

    declare

    c number;

    d number;

    begin

    select count(*) into c from routine where working_day= :dy and period= :pr;

    select count(*) into d from routine where fname= :fac and working_day= :dy;

    if c=1 then

    c:= show_alert('assigned');

    elsif

    d=3 then

    d:=show_alert('max_class');

    else

    insert into routine values(:dy,:pr,:fac,:sub,:bat);

  • standard.commit;

    end if;

    end ;

    Begin

    open_form('C:\Project\leave\leave.fmx',activate,no_session);

    end;

    open_form('C:\Documents and

    Settings\Administrator\Desktop\Project\ROUTINE\ROUTINE_REPORT.fmx',activate,no_session;

    Leave Form

    Declare

    a number;

    begin

    if :li2 is null then

    a:= show_alert('noday');

  • else

    select count(*) into a from routine where working_day= :li2;

    a:= populate_group('rg3');

    populate_list('li1','rg3');

    end if; end;

    declare

    b number;

    begin

    if :li2 is null then

    b:= show_alert('noday');

    else

    update routine set period='OFF' where fname= :block3.li1;

    standard.commit;

    end if;

    end;

    begin

    open_form('C:\Project\routine\ROUTINE.fmx',activate,no_session);

    end;

  • Future scopes of the project:

    The Project can be extended to handle routines of multiple departments of a college.

    The Faculty Report could be made more

    attractive by including images as BLOBs.

  • Certificate This is to certify that Ms. Rituparna Hazra of

    Calcutta Institute of Engineering and

    Management, registration number: 27833, has

    successfully completed a project on Faculty

    Allocation System using Oracle Forms under the

    guidance of Mr. ARNAB CHAKRABORTY.

    --- --------------------------------------------------- - Globsyn Finishing School (a division of Globsyn Skills)

  • Certificate This is to certify that Mr. Dipayan Mondal of

    Haldia Institute of Technology, registration

    number: 27832, has successfully completed a

    project on Faculty Allocation System using Oracle

    Forms under the guidance of Mr. ARNAB

    CHAKRABORTY.

    --- --------------------------------------------------- - Globsyn Finishing School (a division of Globsyn Skills)

  • Certificate This is to certify that Mr. Parnab Ghosh of Haldia

    Institute of Technology, registration number:

    27851, has successfully completed a project on

    Faculty Allocation System using Oracle Forms

    under the guidance of Mr. ARNAB

    CHAKRABORTY.

    --- --------------------------------------------------- - Globsyn Finishing School (a division of Globsyn Skills)

  • Certificate This is to certify that Mr. Rudrashish Bose of

    Calcutta Institute of Engineering and

    Management, registration number: 27831, has

    successfully completed a project on Faculty

    Allocation System using Oracle Forms under the

    guidance of Mr. ARNAB CHAKRABORTY.

    --- --------------------------------------------------- - Globsyn Finishing School (a division of Globsyn Skills)

  • Certificate This is to certify that Mr. Asish Bhakat of Haldia

    Institute of Technology, registration number:

    29659, has successfully completed a project on

    Faculty Allocation System using Oracle Forms

    under the guidance of Mr. ARNAB

    CHAKRABORTY.

    --- --------------------------------------------------- - Globsyn Finishing School (a division of Globsyn Skills)

  • Certificate This is to certify that Mr. Sanjoy Mondal of Haldia

    Institute of Technology, registration number:

    27850, has successfully completed a project on

    Faculty Allocation System using Oracle Forms

    under the guidance of Mr. ARNAB

    CHAKRABORTY.

    --- --------------------------------------------------- - Globsyn Finishing School (a division of Globsyn Skills)