Академический Документы
Профессиональный Документы
Культура Документы
1. INTRODUCTION
Depending on the forum's settings, users can be anonymous or have to register with the forum
and then subsequently log in in order to post messages. On most forums, users do not have to log
in to read existing messages.
Online discussions are a great tool to extend classroom conversations and learning by getting
students to engage with class material online. Online discussions are often arranged by
discussion boards, forums, and threads.
A discussion forum is the tool that hosts the space for online discussions.
Discussion boards can hold multiple forums, which can be organized by topic.
Discussion threads are conversations within discussion forums and begin with a leading
question or prompt. Users can respond to the original prompt and can reply to other
responses.
Course management systems, such as Blackboard, and other web-based tools, such as Piazza,
host online discussions.
Online discussions can take other forms such as discussions based on a piece of work, or
feedback dialogue on a student’s writing. For example, when creating a wiki collaboratively,
students may discuss the process online, or when posting on a blog, students can discuss the blog
post in the comments section.
SV COLLEGE OF ENGINEERING, Dept. of CSE Page 1
Online Media-Forum for Educational Institutes
Social media use web-based technologies, desktop computers and mobile technologies (e.g.,
smartphones and tablet computers) to create highly interactive platforms through which
individuals, communities and organizations can share, co-create, discuss, and modify user-
generated content or pre-made content posted online.
2. PROJECT DESCRIPTION
The problem is the lack a dedicated platform where members in an educational system
can communicate and discuss on various topic beyond the premises of the institute. There is no
web application for educational institutes where students or faculty can post technical articles as
other can see them.
The modern forum originated from bulletin boards, and so-called computer conferencing
systems, and are a technological evolution of the dialup bulletin board system. From a
technological standpoint, forums or boards are web applications managing user-generated
content.
Early Internet forums could be described as a web version of an electronic mailing list or
newsgroup (such as exist on Usenet); allowing people to post messages and comment on other
messages. Later developments emulated the different newsgroups or individual lists, providing
more than one forum, dedicated to a particular topic.
Internet forums are prevalent in several developed countries. Japan posts the most with
over two million per day on their largest forum. China also has many millions of posts on forums
such as Tianya Club.
These redesigned spaces support what is often referred to as flexible or active learning.
While active learning spaces vary, they share many common features. The typical podium is
moved from the front of the classroom to the center and is surrounded by round or oval tables
with movable chairs that enable students to shift between groups as needed. Each table may be
technology-enabled, with interactive whiteboards or other marking surfaces.
Discussion forums provide students a place to have multiple discussions online regarding
course reading and assignments, to respond to questions and thoughts posted by other students,
and to engage with the material and with each other outside of the classroom. Using a platform
of your preference for online discussions, students can build a learning community around
discussion topics, participate at their own pace, allow different types of student learners to
contribute, and increase individual student learning. Additionally, students who might feel
inhibited from voicing their opinion in class can benefit from a discussion forum by being able to
express their ideas in a written format. These topics can be instructor- and student-led.
Instructors should be prepared to spend time participating in these forums if they expect
meaningful discussion from students.
It can be daunting to set up your online form, and tough to reach the level of discourse you want.
But by following these best practices, you can achieve great results.
Administrator enters students and faculty data in database. Student or admin has to register with
details in the database. Then he can log in and Home page will be shown. User can post posts or
ask question. Users can follow other. On his wall newsfeed of posts by user whom he follow will
be shown.
User will receive notifications when other comment on his posts, question or answers or when
other answer to his question. Admin can make announcements about up coming events and user
will receive tem as notifications.
3. COMPUTATIONAL ENVIRONMENT
4. FEASIBILITY STUDY
The feasibility of the project is analyzed in this phase and business proposal is put forth
with a very general plan for the project and some cost estimates. During system analysis the
feasibility study of the proposed system is to be carried out. This is to ensure that the proposed
system is not a burden to the company. For feasibility analysis, some understanding of the major
requirements for the system is essential.
ECONOMICAL FEASIBILITY
TECHNICAL FEASIBILITY
SOCIAL FEASIBILITY
This study is carried out to check the economic impact that the system will have on the
organization. The amount of fund that the company can pour into the research and development
of the system is limited. The expenditures must be justified. Thus the developed system as well
within the budget and this was achieved because most of the technologies used are freely
available. Only the customized products had to be purchased.
4.2.TECHNICAL FEASIBILITY
This study is carried out to check the technical feasibility, that is, the technical
requirements of the system. Any system developed must not have a high demand on the available
technical resources. This will lead to high demands on the available technical resources. This
will lead to high demands being placed on the client. The developed system must have a modest
requirement, as only minimal or null changes are required for implementing this system.
4.3.SOCIAL FEASIBILITY
The aspect of study is to check the level of acceptance of the system by the user. This includes
the process of training the user to use the system efficiently. The user must not feel threatened by
the system, instead must accept it as a necessity. The level of acceptance by the users solely
depends on the methods that are employed to educate the user about the system and to make him
familiar with it. His level of confidence must be raised so that he is also able to make some
constructive criticism, which is welcomed, as he is the final user of the system
5. SYSTEM ANALYSIS
The existing system is class teaching where students has to coming to college and they have
direct communication with lectures. There is no dedicated existing system for question and
answering discussion for educational institutes. There is no convenient way to communicate with
each other after college timings as they do in college. Beyond the campus, students have to
communicate with each other by using social media or instant messaging. After their class hours
students have to e-mail to the students to assign or suggest some work. There is no specific way
to post educational articles and post. Students and lecturers cannot follow others to see their
posts and articles.
There are many knowledge marketing, question and answering sites like stackoverflow, quora for
general purposes. But there is no dedicated application for educational institute
5.2.PROPOSED SYSTEM
The goal of the proposed system “Online Media Forum for Educational Institute” is to provide
an online platform for duplex way of communication between students and lecturers. This
system facilitates students a flexible way to discuss among them. Lecturers can assign and
suggest work to their students and can observe their activities and progress. This system
implements hierarchal role of an individual according to their role in the institute. Students can
ask questions and doubts to their lecturers from home and lecturers can respond. Students can
follow lecturers and other students. Everyone can post articles, post their status on work and
ideas, discuss on a topic.
Online Media-Forum has Flexible, not limited by time or space. In-class discussions can
continue online and vice versa. Students can prepare for class activities by engaging in online
discussions that are designed to have students get familiar with new topics. For example,
students can discuss their responses to a pre-class reading. Online discussions can
simultaneously reach different types of learners. Online discussions can enable introverted
thinkers time to process a response and extraverted thinkers time to reflect on their thoughts
before posting. Students can use online discussions to give and receive feedback on their work.
Postings are saved and conversations can be reviewed for assessment and reflection purposes.
Online discussions can be a space where students answer each other’s frequently asked questions
about the course, helping to alleviate the instructor workload by dealing with questions that
otherwise might be emailed to her or him.
Because students know that you and their peers will read their postings, they often put
significant thought and effort into them. Asynchronous discussion gives students time to
consider their postings before making them. The exchange of ideas also often results in
higher quality work than if students were left on their own, and the exchanges can be
across sections, not just within one tutorial group or small discussion group.
When the discussion occurs before concepts or issues are discussed in class, students are
typically more prepared for the class. They have engaged with the material and each other
and have responded to whatever questions or comments you and their peers have posted.
The optimal online discussion makes students facilitators of their own and others’
learning. They should learn how to pose good questions and respond with clarity to help
further their understanding and that of their peers. The online format can also greatly
benefit shy students who may have difficulty contributing in face-to-face discussions.
The software used to support online discussion allows for multiple subtopics to be under
discussion simultaneously. Students cannot complain that they missed their opportunity
to add their ideas – a common enough problem in face-to-face discussions.
While most online discussions should be informal, they still give students writing
practice. As well, you might ask for the posting of group responses, which should require
more formal writing. The iterative nature of discussion, in which ideas are developed and
refined as the discussion continues, also models the writing of drafts.
Unfolding discussions, in which students help each other understand course concepts and
issues, allow you to learn what students are thinking, uncover the connections they are
making, and see the accuracy of their thinking processes, not just the end products.
6. SYSTEM DESIGN
A three-tier architecture is a client-server architecture in which the functional process logic, data
access, computer data storage and user interface are developed and maintained as independent
modules on separate platforms. Three-tier architecture is a software design pattern and a well-
established software architecture.
Three-tier architecture allows any one of the three tiers to be upgraded or replaced
independently. The user interface is implemented on a desktop PC and uses a standard graphical
user interface with different modules running on the application server. The relational database
management system on the database server contains the computer data storage logic. The middle
tiers are usually multitiered.
Typically, the user interface runs on a desktop PC or workstation and uses a standard
graphical user interface, functional process logic that may consist of one or more separate
modules running on a workstation or application server, and an RDBMS on a database server or
mainframe that contains the computer data storage logic. The middle tier may be multitiered
itself (in which case the overall architecture is called an "n-tier architecture").
Presentation tier:
This is the topmost level of the application. The presentation tier displays information
related to such services as browsing merchandise, purchasing and shopping cart contents. It
communicates with other tiers by which it puts out the results to the browser/client tier and all
other tiers in the network. In simple terms, it is a layer which users can access directly (such as a
web page, or an operating system's GUI).
The logical tier is pulled out from the presentation tier and, as its own layer, it controls an
application’s functionality by performing detailed processing.
Data tier:
The data tier includes the data persistence mechanisms (database servers, file shares, etc.) and
the data access layer that encapsulates the persistence mechanisms and exposes the data. The
data access layer should provide an API to the application tier that exposes methods of managing
the stored data without exposing or creating dependencies on the data storage mechanisms.
Avoiding dependencies on the storage mechanisms allows for updates or changes without the
application tier clients being affected by or even aware of the change. As with the separation of
any tier, there are costs for implementation and often costs to performance in exchange for
improved scalability and maintainability.
6.2.1 Goals:
The Primary goals in the design of the UML are as follows:
1. Provide users a ready-to-use, expressive visual modeling Language so that they can
develop and exchange meaningful models.
2. Provide extendibility and specialization mechanisms to extend the core concepts.
3. Be independent of particular programming languages and development process.
4. Provide a formal basis for understanding the modeling language.
5. Encourage the growth of OO tools market.
6. Support higher level development concepts such as collaborations, frameworks, patterns
and components.
7. Integrate best practices.
Use case diagram in the Unified Modeling Language (UML) is a type of behavioral diagram
defined by and created from a Use-case analysis. Its purpose is to present a graphical overview
of the functionality provided by a system in terms of actors, their goals (represented as use
cases), and any dependencies between those use cases. The main purpose of a use case diagram
is to show what system functions are performed for which actor. Roles of the actors in the system
can be depicted.
College register and updates profile. User logs in and sees wall. Likes posts, comment,
report posts. User can post articles. They can start discussion and participate in discussion.
Admin deletes inappropriate content. Admin can make announcements. Finally user logs out.
Actors:
• Student
• Lecturer
• Admin
• Server
Activity diagrams are graphical representations of workflows of stepwise activities and actions
with support for choice, iteration and concurrency. In the Unified Modeling Language, activity
diagrams can be used to describe the business and operational step-by-step workflows of
components in a system. An activity diagram shows the overall flow of control.
Fig:Activity diagram
Sequence diagram:
A Sequence diagram depicts the sequence of actions that occur in a system. The
invocation of methods in each object, and the order in which the invocation occurs is captured in
a Sequence diagram. This makes the Sequence diagram a very useful tool to easily represent the
dynamic behavior of a system. A Sequence diagram is two-dimensional in nature. On the
horizontal axis, it shows the life of the object that it represents, while on the vertical axis, it
shows the sequence of the creation or invocation of these objects.
Because it uses class name and object name references, the Sequence diagram is very
useful in elaborating and detailing the dynamic design and the sequence and origin of invocation
of objects. Hence, the Sequence diagram is one of the most widely used dynamic diagrams in
UML. A sequence diagram is made up of objects and messages. Objects are represented exactly
how they have been represented in all UML diagrams as rectangles with the underlined class
name within the rectangle.
The deployment diagram specifies asset of constructs that can be used to define the
execution architecture of systems that represents the assignment of software artifacts to nodes.
Nodes are connected through communication paths to create network systems of arbitrary
complexity. Nodes are typically defined in a nested manner, and represent either hardware device
or software execution environments. Artifacts represent concrete elements in the physical world
that are the result of a development process.
The nodes appear as boxes, and the artifacts allocated to each node appear as rectangles within
boxes. Nodes may have sub nodes, which appear as nested boxes.
7. SYSTEM IMPLEMENTATION
Enter data
Delete User
Make Announcements
Register
Student or faculty member has to register with detail that are in the database.
Login
After registration user can login anytime and can enter in the application.
Notifications
User will receive notifications when other comment on his posts, question or answers or
when other answer to his question
Post
User can post their posts, updates, technical articles etc on thei wall.
Ask Question
User can ask question to which other can comment or answer to that question.
Comment
Some will post the articles for that anyone can comment either it’s a good article or
something how they feel by seeing that post.
8. TESTING
Testing is the process of evaluating a system or its component(s) with the intent to find whether
it satisfies the specified requirements or not. In simple words, testing is executing a system in
order to identify any gaps, errors, or missing requirements in contrary to the actual requirements.
It depends on the process and the associated stakeholders of the project(s). In the IT
industry, large companies have a team Testing is the process of evaluating a system or its
component(s) with the intent to find whether it satisfies the specified requirements or not. In
simple words, testing is executing a system in order to identify any gaps, errors, or missing
requirements in contrary to the actual requirements.
It depends on the process and the associated stakeholders of the project(s). In the IT industry,
large companies have a team with responsibilities to evaluate the developed software in context
of the given requirements. Moreover, developers also conduct testing which is called Unit
Testing. In most cases, the following professionals are involved in testing a system within their
respective capacities:
Software Tester
Software Developer
Project Lead/Manager
End User
Different companies have different designations for people who test the software on the basis
of their experience and knowledge such as Software Tester, Software Quality Assurance
Engineer, QA Analyst, etc.
It is not possible to test the software at any time during its cycle. The next two sections state
when testing should be started and when to end it during the SDLC.
An early start to testing reduces the cost and time to rework and produce error-free
software that is delivered to the client. However in Software Development Life Cycle (SDLC),
testing can be started from the Requirements Gathering phase and continued till the deployment
of the software. It also depends on the development model that is being used. For example, in the
Waterfall model, formal testing is conducted in the testing phase; but in the incremental model,
testing is performed at the end of every increment/iteration and the whole application is tested at
the end.
During the requirement gathering phase, the analysis and verification of requirements are
also considered as testing.
Reviewing the design in the design phase with the intent to improve the design is also
considered as testing.
Testing Deadlines
Bug rate falls below a certain level and no high-priority bugs are identified
Management decision
This type of testing is performed by developers before the setup is handed over to the
testing team to formally execute the test cases. Unit testing is performed by the respective
developers on the individual units of source code assigned areas. The developers use test data
that is different from the test data of the quality assurance team.
The goal of unit testing is to isolate each part of the program and show that individual
parts are correct in terms of requirements and functionality.
Testing cannot catch each and every bug in an application. It is impossible to evaluate
every execution path in every software application. The same is the case with unit testing.
There is a limit to the number of scenarios and test data that a developer can use to verify
a source code. After having exhausted all the options, there is no choice but to stop unit testing
and merge the code segment with other units.
Bottom-up integration
This testing begins with unit testing, followed by tests of progressively higher-level
combinations of units called modules or builds.
Top-down integration
In this testing, the highest-level modules are tested first and progressively, lower-level modules
are tested thereafter.
This is a type of black-box testing that is based on the specifications of the software that is to be
tested. The application is tested by providing input and then the results are examined that need to
conform to the functionality it was intended for. Functional testing of a software is conducted on
a complete, integrated system to evaluate the system's compliance with its specified
requirements.
There are five steps that are involved while testing an application for functionality.
Steps Description
I The determination of the functionality that the intended application is meant to perform.
II The creation of test data based on the specifications of the application.
III The output based on the test data and the specifications of the application.
IV The writing of test scenarios and the execution of test cases.
V The comparison of actual and expected results based on the executed test cases.
An effective testing practice will see the above steps applied to the testing policies of every
organization and hence it will make sure that the organization maintains the strictest of standards
when it comes to software quality.
System testing tests the system as a whole. Once all the components are integrated, the
application as a whole is tested rigorously to see that it meets the specified Quality Standards.
This type of testing is performed by a specialized testing team.
System testing is the first step in the Software Development Life Cycle, where the
application is tested as a whole.
The application is tested thoroughly to verify that it meets the functional and technical
specifications.
The application is tested in an environment that is very close to the production environment
where the application will be deployed
System testing enables us to test, verify, and validate both the business requirements as
well as the application architecture.
White-box testing is the detailed investigation of internal logic and structure of the code.
White-box testing is also called glass testing or open-box testing. In order to perform white-
box testing on an application, a tester needs to know the internal workings of the code
The tester needs to have a look inside the source code and find out which unit/chunk of
the code is behaving inappropriately.
Advantages:
As the tester has knowledge of the source code, it becomes very easy to find out which
type of data can help in testing the application effectively.
Extra lines of code can be removed which can bring in hidden defects.
Due to the tester's knowledge about the code, maximum coverage is attained during test
scenario writing.
Disadvantages:
Due to the fact that a skilled tester is needed to perform white-box testing, the costs are
increased.
Sometimes it is impossible to look into every nook and corner to find out hidden errors
that may create problems, as many paths will go untested.
The technique of testing without having any knowledge of the interior workings of the
application is called black-box testing. The tester is oblivious to the system architecture and does
not have access to the source code. Typically, while performing a black-box test, a tester will
interact with the system's user interface by providing inputs and examining outputs without
knowing how and where the inputs are worked upon.
Advantages:
Clearly separates user's perspective from the developer's perspective through visibly
defined roles.
Large numbers of moderately skilled testers can test the application with no knowledge of
implementation, programming language, or operating systems.
Disadvantages:
Limited coverage, since only a selected number of test scenarios is actually performed.
Inefficient testing, due to the fact that the tester only has limited knowledge about an
application.
Blind coverage, since the tester cannot target specific code segments or error-prone areas.
index.php:
<?php
$_p="Login/Register";
$_js="index.js";
require_once('header.php');
require_once('db.php');
if(!isset($_SESSION['uname'])){
if(isset($_COOKIE['uname']))
$_SESSION['uname']=$_COOKIE['uname'];
}
else{
header('Location: home.php');
exit();
}
if(isset($_POST['login'])){
if(isset($_POST['uname'])&&isset($_POST['pwd'])){
$email=$_POST['uname'];
$password=$_POST['pwd'];
$pwd=md5($password);
echo $pwd.'<br>';
$q="select * from accounts where email='$email' and pwd='$pwd'";
$r=mysqli_query($db,$q)or die ('login db error!') ;
if(mysqli_num_rows($r)==1){
$row=mysqli_fetch_assoc($r);
$uname=$row['uname'];
$_SESSION['uname']=$uname;
setcookie('uname',$uname,time()+(86400*7));
header('Location: home.php');
}
else echo "email and password dont match!";
}
else echo "Please enter email and password!";
}
if(isset($_POST['reg'])){
$uname=$_POST['uname'];
$email=$_POST['email'];
$pwd1=$_POST['pwd1'];
$pwd2=$_POST['pwd2'];
if(isset($_POST['type'])) $type=$_POST['type'];
if(isset($_POST['gender'])) $gender=$_POST['gender'];
$month=$_POST['month'];
$day=$_POST['day'];
$year=$_POST['year'];
if(empty($uname)){
if(empty($email)){
if(empty($pwd1)){
if(empty($pwd2)){
if($pwd1!=$pwd2){
if(empty($type)){
echo "Enetr yourdesignation!<br>";
}
echo "passowrds dont match<br>”;
}
echo "enter password two times<br>";
}
echo "Enetr password<br>";
}
}
echo "Enetre username!<br>";
}
/////check for username availability
if(isset($uname)){
$q="select * from accounts where uname='$uname'";
$r=mysqli_query($db,$q);
if(mysqli_num_rows($r)>0)
echo "This username is taken!";
}
///////student type
if($type==1){
$q="select * from students where email='$email'";
$r=mysqli_query($db,$q)or die ('Student db error!') ;
echo mysqli_num_rows($r);
if(mysqli_num_rows($r)==1){
$row=mysqli_fetch_assoc($r);
$pwd=md5($pwd1);
$stype=$row['uid'];
$q0="insert into accounts values(0,$stype,'$uname','$email','$pwd','$type','0')";
$r=mysqli_query($db,$q0)or die ('cStudent db error!') ;
$pq="insert into profile (uname,gender, birthday) values ('$uname','$gender','$year-$month-
$day')";
$r=mysqli_query($db,$pq)or die ('Student dob error!') ;
$pq="insert into follows (follower,following) values ('$uname','$uname')";
mysqli_query($db,$pq)or die ('Index:sfollow dob error!') ;
$_SESSION['uname']=$uname;
setcookie('uname',$uname,time()+(86400*7));
header('Location: home.php');
}
else echo 'Invalid details';
}
///////factulty type
else{
$fq="select * from faculty where email='$email'";
$r=mysqli_query($db,$fq) or die ('Faculty db error!');
if(mysqli_num_rows($r)==1) {
$row=mysqli_fetch_assoc($r);
if($row['type']==$type){
$pwd=md5($pwd1);
$ftype=$row['uid'];
$q0="insert into accounts values(0,$ftype,'$uname','$email','$pwd','$type','0')";
$r=mysqli_query($db,$q0)or die ('faculty db error!') ;
$pq="insert into profile (uname,gender, birthday) values ('$uname','$gender','$year-$month-
$day')";
$r=mysqli_query($db,$pq)or die ('factulty dob error!') ;
$pq="insert into follows (follower,following) values ('$uname','$uname')";
mysqli_query($db,$pq)or die ('Index:ffollow dob error!') ;
$_SESSION['uname']=$uname;
setcookie('uname',$uname,time()+(86400*7));
echo $_SESSION['uname']; echo $_COOKIE['uname'];
header('Location: home.php');
}
else echo "Enetr coret designation";
}
else echo 'Invalid details';
}
}
?>
<div ="lbig">
<option value="">select</option>
<option value="1">Jan</option>
<option value="2">Feb</option>
<option value="3">Mar</option>
<option value="4">Apr</option>
<option value="5">May</option>
<option value="6">Jun</option>
<option value="7">Jul</option>
<option value="8">Aug</option>
<option value="9">Sep</option>
<option value="10">Oct</option>
<option value="11">Nov</option>
<option value="12">Dec</option>
</select>
<label for="day">Day:</label>
<select name="day" id="day">
<option value="">select</option>
</select>
<label for="year">Year:</label>
<select name="year" id="year" onchange="call()">
<option value="">select</option>
</select>
</fieldset><p>
<input type="submit" name="reg" class="button" value="Register"><p>
</form>
</div>
</div>
<footer>
</footer>
</body>
</html>
home.php
}
?>
</div>
</div>
<?php
$_p="Home";
$_js="home.js";
require_once('header.php');
?>
<div id="big">
<!--<div class='dbox'>
<p>Are you sure you are reporting this post?</p>
<div><div>
</div>-->
<div id="main">
<div id="post" class="ele">
<form action="post.php" method="post" enctype="multipart/form-data">
<input type="text" id="pSub" name="subject" placeholder="Subject"
onkeyup="clearField('errorField')">
<textarea id="writePost" name="body" placeholder="Write something..."
onkeyup="clearField('errorField')"></textarea> <br>
<label for="pphotos">
<img src="images/addPhotos.png" width='28px' height='28px' style="padding:15px
10px 0px 0px" title="Add Photos(Max:2)">
</label>
<input type="file" name="pphotos[]" id="pphotos" multiple
accept=".jpg,.jpeg,.png,.gif">
<label for="pfiles">
$udb="students";
if($type['actype']!=1) $udb="faculty";
$pq="select * from $udb where uid='$uid'";
$p=mysqli_query($db,$pq) or die('home:postBy db error');
$row=mysqli_fetch_assoc($p);
$time=actionTime($prow['time']);
echo "<div id='pby'><a href='profile.php?u=".$prow['postBy']."'>".
$row['fname']." ".$row['lname']."</a><div id='pdate'><font size='2'>".
$time."</font></div></div>";
echo "<div id='psub'><strong>".$prow['sub']."</strong></div>";
echo "<div id='pbody'>".$prow['body']."</div>";
//count number of images
$img=0;
if($prow['img1']!=null){
$img=1;
if($prow['img2']!=null) $img=2;
}
if($img==1){
echo "<img src='".$prow['img1']."' class='oneImg'>";
}
else if($img==2){
echo "<img src='".$prow['img1']."' class='twoImgs'>";
echo "<img src='".$prow['img2']."' class='twoImgs'>";
}
//count number of files
$file=0;
if($prow['file1']!=null){
$file=1;
if($prow['file2']!=null){
$file=2;
if($prow['file3']!=null)
$file=3;
}
}
if($file>0){
echo "<img id='pclip' src='images/pclip.png' width='20px' height='20px'
style='padding:15px 5px 0px 10px' title='Attachments'>";
echo "<div id='pattaches'>";
for($f=1;$f<=$file;$f++){
$filename=basename($prow["file$f"]);
$filetype=pathinfo($filename,PATHINFO_EXTENSION);
echo "<div id='pfiles'>";
if($filetype=='pdf') echo "<img class='ficon' src='images/pdf.png'
width='20px' height='20px' >";
else if($filetype=='doc'||$filetype=='docx') echo "<img class='ficon'
src='images/doc.png' width='25px' height='25px' >";
else if($filetype=='ppt') echo "<img class='ficon' src='images/ppt.png'
width='20px' height='20px' >";
else if($filetype=='txt') echo "<img class='ficon' src='images/txt.png'
width='20px' height='20px' >";
echo "<a href='".$prow["file$f"]."' download>".$filename."</a>
</div>";
}
echo "</div>";
}
echo "<div > <span id='pcomments'
onclick='showPostComments($i);'>Comments </span></div>";
$cq="SELECT * FROM comments WHERE pid=$pid order by time asc";
$c=mysqli_query($db,$cq)or die ('Home:comments db error!') ;
$nc=mysqli_num_rows($c); $j=1;
echo "<div class='cmnts' id='pcomments$i' >";
while($crow=mysqli_fetch_assoc($c)){
</form>
</div>
_END;
$i++;
echo "<hr>";
echo "</div>";
}
?>
</div> <br>
</div>
questions.php
echo "</div>";
}
?>
</div>
<?echo "Loged in as ".$_SESSION['uname'];?>
<a href="logout.php">Logout</a>
</div>
notification.php
<?php
if(isset($_GET['n'])) $n=$_GET['n'];
if($n=='n'){
echo "<div id='notif'>";
$nq="select * from notif where receiver='$uname' and seen='0'";
$n=mysqli_query($db,$nq);
if(mysqli_num_rows($n)!=0){
while($nrow=mysqli_fetch_assoc($n)){
$pid=$nrow['pid'];
$qid=$nrow['qid'];
$aid=$nrow['aid'];
$c=$nrow['c'];
$sender=$nrow['sender'];
$receiver=$nrow['receiver'];
////By name
$atq="select uid,actype from accounts where uname='$sender'";
$at=mysqli_query($db,$atq)or die('question:actye,uid db error');
$atype=mysqli_fetch_assoc($at);
$uid=$atype['uid'];
$udb="students";
if($atype['actype']!=1) $udb="faculty";
$pq="select * from $udb where uid='$uid'";
$p=mysqli_query($db,$pq) or die('question:postBy db error');
$row=mysqli_fetch_assoc($p);
$fname=$row['fname'];
$lname=$row['lname'];
////$time=actionTime($crow['time']);
////answers
if($qid!=0&&$aid==0&&$c==0){
echo "<div class='notif'><a href='question.php?d=$qid'><div class='nlink'>";
$qq="select title from disc where did=$qid";
$q=mysqli_query($db,$qq);
$qrow=mysqli_fetch_assoc($q);
$qtitle=$qrow['title'];
echo "$fname $lname answered to your question \"$qtitle\"";
echo "</div></a></div>";
}
////comments to qustion
if($qid!=0&&$aid==0&&$c==1){
echo "<div class='notif'><a href='question.php?d=$qid'><div class='nlink'>";
$qq="select title from disc where did=$qid";
$q=mysqli_query($db,$qq);
$qrow=mysqli_fetch_assoc($q);
$qtitle=$qrow['title'];
echo "$fname $lname commented to your question \"$qtitle\"";
echo "</div></a></div>";
}
////comments to answer
if($qid!=0&&$aid!=0&&$c==1){
echo "<div class='notif'><a href='question.php?d=$qid'><div class='nlink'>";
$qq="select title from disc where did=$qid";
$q=mysqli_query($db,$qq);
$qrow=mysqli_fetch_assoc($q);
$qtitle=$qrow['title'];
echo "$fname $lname commented to your answer to the question \"$qtitle\"";
echo "</div></a></div>";
}
}
}else {
echo "<div id='nonotif'>There are no nitifications to show you for now.</div>";
}
echo "</div>";
}
else if($n=='a'){
echo "<div id='nAnn'>";
if($prow['img']!=null){
echo "<img src='".$prow['img']."' class='oneImg'>";
}
//count number of files
if($prow['file']!=null){
echo "<img id='pclip' src='images/pclip.png' width='20px' height='20px'
style='padding:15px 5px 0px 10px' title='Attachments'>";
echo "<div id='pattaches'>";
$filename=basename($prow["file"]);
$filetype=pathinfo($filename,PATHINFO_EXTENSION);
echo "<div id='pfiles'>";
if($filetype=='pdf') echo "<img class='ficon' src='images/pdf.png'
width='20px' height='20px' >";
else if($filetype=='doc'||$filetype=='docx') echo "<img class='ficon'
src='images/doc.png' width='25px' height='25px' >";
else if($filetype=='ppt') echo "<img class='ficon' src='images/ppt.png'
width='20px' height='20px' >";
else if($filetype=='txt') echo "<img class='ficon' src='images/txt.png'
width='20px' height='20px' >";
echo "<a href='".$prow["file"]."' download>".$filename."</a>
</div>";
echo "</div>";
}
echo "<hr>";
echo "</div>";
}
echo "</div>";
}
?>
question.php
<?php
if(isset($_GET['d'])) $did=$_GET['d'];
$dq="SELECT * FROM disc WHERE did=$did";
$r=mysqli_query($db,$dq)or die ('Discussions:disc db error!') ;
$i=0;
while($qrow=mysqli_fetch_assoc($r)){
echo "<div id='discTopic' class='ele'>";
$tq="select uid,actype from accounts where uname='".$qrow['discBy']."'";
$t=mysqli_query($db,$tq)or die('Discussions:actye,uid db error');
$type=mysqli_fetch_assoc($t);
$uid=$type['uid'];
$udb="students";
if($type['actype']!=1) $udb="faculty";
$pq="select * from $udb where uid='$uid'";
$p=mysqli_query($db,$pq) or die('Discussions:postBy db error');
$row=mysqli_fetch_assoc($p);
$time=actionTime($qrow['time']);
echo "<div id='qtitle'>".$qrow['title']."</div><br>";
echo "<div id='qbody'>".$qrow['descr']."</div>";
//count number of images
$img=0;
if($qrow['img1']!=null){
$img=1;
if($qrow['img2']!=null) $img=2;
}
if($img==1){
$size= getimagesize ($qrow['img1']);
else if($img==2){
echo "<img src='".$qrow['img1']."' class='twoImgs'>";
echo "<img src='".$qrow['img2']."' class='twoImgs'>";
}
echo "<div id='dby' class='by'><a href='profile.php?u=".$qrow['discBy']."'>".
$row['fname']." ".$row['lname']."</a><div id='pdate'><font size='2'>".
$time."</font></div></div>";
echo "";
if($j<$nqc) echo "<hr>";
echo "</div>";
$j++;
}
echo <<<_END
echo "<hr>";
echo "</div>";
}
?>
</div>
<div id="answers" class="wall">
<?php
$aq="SELECT * FROM disclog WHERE did=$did order by time asc";
$r=mysqli_query($db,$aq)or die ('question:disclog db error!') ;
if(mysqli_num_rows($r)!=0) echo "<div id='anss'>Answers</div>";
$i=1;
while($arow=mysqli_fetch_assoc($r)){
$dlogid=$arow['dlogid'];
echo "<a name='$dlogid'></a>";
echo "<div id='qAnsLog' class='ele'>";
$i++;
echo "<hr>";
echo "</div>";
}
?>
</div>
<div id="answer" class="ele">
<label for="dphotos">
<img src="images/addPhotos.png" width='28px' height='28px' style="padding:15px
10px 0px 0px" title="Add Photos(Max:2)">
</label>
<input type="file" name="aphotos" id="aphotos" accept=".jpg,.jpeg,.png,.gif">
<div id="ansErrorField" style="width:500px; margin:auto; "></div>
</div>
profile.php
<?php
//gender
$row=mysqli_fetch_assoc($r);
?>
</div>
<div id='ptype'>
<?php
$type=mysqli_fetch_assoc($t);
$uid=$type['uid'];
$udb="students";
if($type['actype']!=1) $udb="faculty";
$row=mysqli_fetch_assoc($p);
$dep=$row['deptid'];
$dept="";
switch($dep){
if($udb=='students'){
else{
$type=$row['type'];
switch($type){
$desig=$row['type'];
?>
</div>
<div id="userAct">
<?php
$follow=false;
if(mysqli_num_rows($r)==1) $follow=true;
if($_p==$_SESSION['uname'])
echo <<<_END
</from>
_END;
</from>
_END;
</from>
</from>
_END;
?>
</div>
Admin.php
<div id='announcements'>
<div id='apost'>
<label for="pphotos">
</label>
<label for="pfiles">
</label>
</form>
</div>
</div>
<div id='feed'>
<?php
while($prow=mysqli_fetch_assoc($r)){
$time=actionTime($prow['time']);
if($prow['img']!=null){
if($prow['file']!=null){
$filename=basename($prow["file"]);
$filetype=pathinfo($filename,PATHINFO_EXTENSION);
</div>";
echo "</div>";
echo "<hr>";
echo "</div>";
?>
Add user.php
if(isset($_POST['addFacRec'])){
for($i=0;$i<5;$i++){
$fname=$_POST["ffname$i"];
$lname=$_POST["flname$i"];
$email=$_POST["femail$i"];
$type=$_POST["ftype$i"];
$dept=$_POST["fdept$i"];
if($fname!=null&&$lname!=null&&$email!=null&&$type!=null&&$dept!=null){
echo 'success';
if(isset($_POST['addStuRec'])){
for($i=0;$i<5;$i++){
$roll=$_POST["sroll$i"];
$fname=$_POST["sfname$i"];
$lname=$_POST["slname$i"];
$email=$_POST["semail$i"];
$dept=$_POST["sdept$i"];
$sec=$_POST["ssec$i"];
$jyear=$_POST["sjyear$i"];
if($roll!=null&&$fname!=null&&$lname!=null&&$email!=null&&$dept!=null&&$sec!
=null&&$jyear!=null){
echo 'success';
?>
uploadfile.php
<?
if(isset($_FILES['facultyfile'])){
$lines=0; $total=0;
$faculty=fopen($_FILES['facultyfile']['tmp_name'],"r");
$existfaculty=array();
while(($line=fgets($faculty))!=false){
$total++;
if($total==1) { continue;}
$fdata=explode(";",$line);
if(mysqli_num_rows($r1)==0){
$lines++;
echo $data[2].'<br>';
} else{
$existfaculty[]=$fdata[2];
$total--;
if(sizeof($existfaculty)>0){
if(isset($_FILES['studentfile'])){
$lines=0; $total=0;
$faculty=fopen($_FILES['studentfile']['tmp_name'],"r");
$existuser=array();
while(($line=fgets($faculty))!=false){
$total++;
if($total==1) { continue;}
$sdata=explode(";",$line);
if(mysqli_num_rows($sr1)==0){
$lines++;
echo $line.'<br>';
} else{
$existuser[]=$sdata[0];
$total--;
if(sizeof($existuser)>0){
?>
delete.php
if(isset($_POST['delUser'])){
$email=$_POST['dEmail'];
if(mysqli_num_rows($ct)!=0){
$ctype=mysqli_fetch_assoc($ct);
$uid=$ctype['uid'];
$uname=$ctype['uname'];
$udb="students";
echo $uname;
if($ctype['actype']!=1) $udb="faculty";
Login/Register Page:
It’s a starting page, after registering with unique username, email and selecting what type
of user he is, user can the login.
Home Page:
This is the first page that is shown after user logsin. In home page user can post posts, artcles,
upadates etc.
Profile page:
In profile page all user can see his profile or other users’ an follow or unfollow them.
Questions page:
In this page user can ask question or see all the question asked by others.
Question page:
When user selects a question in Questions page or in Recent Questions wrapper, the
Question page will be shown with that question relative responses to that question.
Notifications page:
Notifications:
Here notification of user will shown when when other comment on his posts, question or
answers or when other answer to his question.
Announcements:
Announcements made by administrator will be shown here.
Administrator Authentication:
When administrator tries to enter into administrator module a HTTP authentication will be sent
to authenticate.
Admin page:
It is the home page for administrator. Here he has the otion to enter into other pages to add users
or to delete users. Here can make announcements here.
Add Faculty:
In this form administrator can add faculty data by uploading CSV file or by entering a
maximum of five recors at a time
Add Students:
In this form administrator can add students data by uploading CSV file or by entering a
maximum of five recors at a time.
Delete User:
Administrator can delete faculty member or students data from all tables in database by
giving his email address.
11. CONCLUSION
The development of software includes so many people like user system developer, user of
system and the management. It is important to identify the system requirements by properly
collecting required data to interact with supplier and customer of the system. Proper design
builds upon this foundation to give a blue print, which is actually implemented by the
developers.
On realizing the importance of systematic documentation all the processes are
implemented using a software engineering approach. Working in a live environment enables one
to appreciate the intricacies involved in the System Development Life Cycle (SDLC). We have
gained a lot of practical knowledge from this project, which we think, shall make us stand in a
good state in the future.
12. BIBOLOGRAPHY
[1] https://www.w3schools.com/bootstrap/
[2] https://en.wikipedia.org/wiki/uml
[3] http://www.tutorialspoint.com/uml/
[4] https://www.tutorialspoint.com/software_testing/
[5] https://stackoverflow.com/
[6] https://www.quora.com/
[7] https://www.cte.cornell.edu/teaching-ideas/teaching-with-technology/online-
discussions.html