Download the free facebook JSP project with source code. The project is available in JSP, Java and MySQL for students. The Student can modify the project with their own ideas to meet their requirements.
Download the JSP project of FACEBOOK using the back-end Tomcat Server, MySQL as database and front-end as JSP, Java and Bootstrap.

We have created this in Advance Java training of Zensar ESD project. This project is fully open source where you can modify and if you wish you can send me back with modification. 

I'm thankful to my friends Shabbir Ahmed Patel, Darshan Sudhir Bhavsar and my instructor Swapnil Deshpande.

Project working : The  project is based on Social media like facebook, twitter, orkut, reddit etc. where we can send Post, Comment on Post, Send Friend request, Delete user where it has the ability to automatically delete all the posts, comments, friend requests of the delete user.

Requirements:

The project is made using Eclipse IDE and MySQL Server. Following are the requirements.
  1. Eclipse JAVA IDE 
  2. MySQL DATABASE 
  3. JDBC Connector for database
  4. TomCat Server

MySQL Statements which we have used for creating Database:

In our project the database have the name : CipherBooK

Following are the Tables:
  • users (uid, uname, uemail, upass, udob, ugender, uloc, uimage);
create table users(
uid int unsigned not null primary key auto_increment,
uname varchar(30) not null,
uemail varchar(60) not null,
upass varchar(30) not null,
udob date null,
ugender enum('Male','Female') not null,
uloc varchar(30) not null,
uimage blob 
);
  • posts (pid, uid, ptitle, pbody, pdate);
create table posts(
pid int unsigned not null primary key auto_increment,
uid int unsigned not null,
ptitle varchar(30) not null,
pbody text not null,
pdate date not null,
constraint fk_user foreign key(uid) references users(uid) 
on delete cascade 
on update cascade
);

  • relationship (user_one_id, user_two_id, status, action_user_id);
CREATE TABLE relationship(
user_one_id INT NOT NULL REFERENCES Users(uid) on delete cascade on update cascade,
user_two_id INT NOT NULL REFERENCES Users(uid) on delete cascade on update cascade,
status INT NOT NULL default 0,
action_user_id INT NOT NULL,
CONSTRAINT CheckOneWay CHECK (user_one_id < user_two_id),
CONSTRAINT UQ_Friends_Pairs UNIQUE (user_two_id, user_one_id),
CONSTRAINT PK_Friends_Pairs PRIMARY KEY (user_one_id, user_two_id)
);
  • comments( cid, uid, pid, cbody, cdate)
create table comments(
cid int unsigned not null primary key auto_increment,
pid int unsigned not null,
uid int unsigned not null,
cbody text not null,
cdate date not null,
constraint fk_post foreign key(pid) references posts(pid) 
on delete cascade on update cascade
);

Steps:

  1. Download the Project and extract it.
  2. The in Eclipse File-> New -> Dynamic Web Project.
  3. Select the target runt me as Tomcat Folder and keep the Dynamic web module version as 3.0
  4. Copy the files as per Folders given in project.
  5. Download and Copy the JAR file in WEB-INF -> lib folder.
Tips for errors:
  1. Make sure that Apache Tomcat server in check in eclipse Properties -> Targeted Runtime
  2. Change Build Path JRE System Library in Properties -> Java Build Path
  3. Import the packages
This Image will help you to organize the files and packages(Folders).

After Reading the whole boring stuff here is the download(Make sure you read it, Its Important):

Download JSP FACEBOOK PROJECT

What is Usability? 
Usability refers to the quality of a user's experience when interacting with products or systems, including websites, software, devices, or applications. Usability is about effectiveness, efficiency and the overall satisfaction of the user. 

Here i am providing notes of Usability Engineering for Pune University. The notes contain on the following syllabus mention bellow:

UNIT 4 - USABILITY EVALUATION

Developing usability specifications for evaluation - case study, criteria for user feedback techniques, formative and summative techniques of evaluation.
Usability Inspections (testing without users) -> heuristic evaluation, user-interface guideline reviews, cognitive walkthrough, model-based analysis.
Usability Testing (testing with users) -> developing usability or test specifications with case study , test goals and test plans , getting test users, choosing experimenters, ethical aspects of tests with human subjects, test tasks, stages of a test, performance measurement, thinking-aloud testing, usability laboratories, remote evaluation.

Methods beyond testing -> observation, user satisfaction questionnaire (rating scale), interviews, system usability scale (SUS), focus groups, logging actual use, user feedback, choosing a methods.
UNIT 5 - USER INTERFACE AND USABILITY STANDARDS
User benefits, vendor benefits, dangers of standards, principles of good UI design, nationalinternational standards, internationalization - international GUI, guidelines for internationalization , localization and multilocale interfaces, UI standards - control standards, window standards, dialog box standards, message box standards, device interaction standards, feedback standards, developing style guides and toolkits , user documentation- manuals, tutorials, information in the interface.
UNIT 6 - RECENT ADVANCE AND TRENDS
Theoretical solutions, technological solutions, CAUSE tools, emerging paradigms of user interactioncollaborative systems, ubiquitous computing , intelligent user-interfaces , simulation and virtual reality , case study , usability issues in organizations- case studies , organizational roles and structures , ethics of usability, web analytics.

SOME OF MOST USEFUL LINK FOR USABILITY:
  1. http://www.usabilitybok.org/ 
  2. http://www.usability.gov/ 
  3. http://www.webmonkey.com/2010/02/information_architecture_tutorial/ 
  4. http://www.measuringu.com/
  5. http://user.medunigraz.at/andreas.holzinger/holzinger%20de/usability%20holzinger.html
  6. FOR USABILITY BOOKS CLICK HERE
  7. DOWNLOAD USABILITY QUESTION PAPER OF 2015,2016,2017 : CLICK HERE


DOWNLOAD USABILITY NOTES FOR UNIT 4, 5 and 6
DOWNLOAD USABILITY ANSWERS FOR UNIT 1, 2 and 3
DOWNLOAD USABILITY ANSWERS FOR UNIT 4, 5 and 6
CLICK HERE ALL BE NOTES
Download the free DBMS mini projects with source code. The project is available in PHP and MySQL for students. The Student can modify the project with their own ideas to meet their requirements. 
Download the project of DBMS for Hardware Shopping Management System using the back-end MySQL as database and front-end as PHP.

DOCUMENTATION:

> Requirements:
> Steps:
  • Download the XAMPP and install and run MySQL and PHPMyAdmin.
  • Download the Source Code(given below) and extract the .rar file.
  • Copy the Source Folder in XAMPP -> htdocs.
  • In browser type -> http://localhost/phpmyadmin and create the following database:
Create database as hardwarestore
In hardwarestore -> create table as cart -> in cart create column as p_id as primary key.
In hardwarestore -> create table as product-> in product create column as product_id as primary key, product_title, product_img, product_desc, product_stock, product_price.
In hardwarestore -> create table as users -> in users create column as uid as primary key, name, email, password.
Now in your browser type -> http://localhost/hardwarestore where main.php is the homepage where you can edit, add, delete, and update the products.
Remember you can edit your project files in Folder -> XAMPP -> htdocs -> hardwarestore
Download the Source Code Click here for PHP and MongoDB - Online Shopping Management System Click here for PHP and MongoDB - Wildlife Sanctuary Click here for JAVA Projects
A JAR (Java ARchive) is a package file format typically used to aggregate many Java class files and associated metadata and resources (text, images, etc.) into one file for distribution. JAR files are archive files that include a Java-specific manifest file. They are built on the ZIP format and typically have a .jar file extension.

Steps to execute this Java Program in Eclipse.
  1. Create a new Java Project and create a new Package.
  2. Write the JarFile.java in eclipse.
  3. Then export the JarFile.java by right click on program and click EXPORT.
  4. In Java Click on Jar File.
  5. Give the file name and store path for jar file.
  6. Click finish.
  7. Write the Next Java Program (eg. Assignment8.java).
  8. Execute the program.
JarFile.java
package SMD8;

public class JarFile {

 public static void main(String[] args){
  
  int i=10, j=20;
  
  Assignment8 A = new Assignment8();
  
  System.out.println("This out is from JarFileSMD8.jar");
  
  System.out.println(A.wc());
  
  System.out.println("Addition: "+(i+j));  
  
 }
 
}
Assignment8.java
package SMD8;

public class Assignment8 {

 public String wc(){
  return "BE - IT 2017 - 18000";
 }
 
}
This Video might be Helpful.

What is TDD?
If somebody asks me to explain TDD in few words, I say TDD is a development of tests before a feature implementation. You can argue that it’s hard to test things which are not existing yet. And Kent Beck will probably give you a slap for this.

So how is it possible? It can be described by following steps:
  1. You read and understand requirements for a particular feature.
  2. You develop a set of tests which check the feature. All of the tests are red, due to absence of the feature implementation.
  3. You develop the feature until all tests become green.
  4. Refactor the code.

Here this Java Program for Hospital Management System with JUnit in Eclipse.

AllTests.java
package SMD7;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

@RunWith(Suite.class)
@SuiteClasses({ DoctorTest.class, ReceptionistTest.class })
public class AllTests {

}

Receptionist.java
package SMD7;

public class Receptionist {

 private int id =101;
 private String name = "Raju";
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 
}
ReceptionistTest.java
package SMD7;

import static org.junit.Assert.*;

import org.junit.Test;

public class ReceptionistTest {

 @Test
 public void test() {
  Receptionist R = new Receptionist();
  int id = R.getId();
  String name = R.getName();
  assertEquals(101, id);
  assertEquals("Raju", name);
 }

}

Doctor.java
package SMD7;

public class Doctor {

 private int id =201;
 private String name = "Rastogi";
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 
}

DoctorTest.java
package SMD7;

import static org.junit.Assert.*;

import org.junit.Test;

public class DoctorTest {

 @Test
 public void test() {
  Doctor R = new Doctor();
  int id = R.getId();
  String name = R.getName();
  assertEquals(201, id);
  assertEquals("Rastogi", name);
 }

}

This video might be helpful.

In State pattern a class behavior changes based on its state. This type of design pattern comes under behavior pattern. In State pattern, we create objects which represent various states and a context object whose behavior varies as its state object changes.

State.java
package SMD6;

public interface State {

 public void doAction(Patient cureness);
 
}
Patient.java
package SMD6;

public class Patient {

 private State state;
 
 public  Patient() {
  state = null;
 }

 public State getState() {
  return state;
 }

 public void setState(State state) {
  this.state = state;
 }
 
}
Cured.java
package SMD6;

public class Cured implements State {

 public void doAction(Patient cureness) {
  System.out.println("CuredState \n Patient is cured and he paying Bill");
  cureness.setState(this);
   
 }

}
NotCured.java
package SMD6;

public class NotCured implements State{

 public void doAction(Patient cureness) {
  System.out.println("NotCured State \n Patient is not cured and he is going under diagnosed again");
  cureness.setState(this);
   
 }
 
}
StateMain.java
package SMD6;

public class StateMain {

 public static void main(String[] args) {
  Patient cureness = new Patient();
  
  Cured cured = new Cured();
  cured.doAction(cureness);
  
  NotCured notcured = new NotCured();
  notcured.doAction(cureness);
  
 }
 
}
In Strategy pattern, a class behavior or its algorithm can be changed at run time. This type of design pattern comes under behavior pattern. In this we create objects which represent various strategies and a context object whose behavior varies as per its strategy object. The strategy object changes the executing algorithm of the context object.
Strategy Design Pattern for Hospital Management System
Strategy.java
package SMD5;

public interface Strategy {
    public void illness();
 }

Patient.java
package SMD5;

public class Patient {
 
  private Strategy strategy;
  
    public Patient(Strategy strategy){
        this.strategy = strategy;
     }

    public void executeStrategy(){
       strategy.illness();
     }
 
}
Cured.java
package SMD5;

public class Cured implements Strategy{

 public void illness() {
  System.out.println("Im cured and im paying Bill Bill amount: 5000");
  
 }
 
}
NotCured.java
package SMD5;

public class NotCured implements Strategy{

 public void illness() {
  System.out.println("Im not cured and going under diagnose again");
  
 }

}
StrategyMain.java
package SMD5;

public class StrategyMain {

   public static void main(String[] args) {
    
 System.out.println("Im under diagnosed");
 System.out.println("After Diagnose");
 Patient P = new Patient(new Cured());  
 P.executeStrategy();

 System.out.println("After Diagnose");
 Patient P1 = new Patient(new NotCured());  
 P1.executeStrategy();
   
   }
 
}

SEQUENCE DIAGRAM
A sequence diagram shows object interactions arranged in time sequence. It depicts the objects and classes involved in the scenario and the sequence of messages exchanged between the objects needed to carry out the functionality of the scenario. Sequence diagrams are typically associated with use case realizations in the Logical View of the system under development. Sequence diagrams are sometimes called event diagrams or event scenarios.
Sequence Diagram for Hospital Management System


USE CASE DIAGRAM
A use case diagram at its simplest is a representation of a user's interaction with the system that shows the relationship between the user and the different use cases in which the user is involved. A use case diagram can identify the different types of users of a system and the different use cases and will often be accompanied by other types of diagrams as well.
Use Case Diagram for Hospital Management System

ACTIVITY DIAGRAM

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 are intended to model both computational and organizational processes (i.e. workflows). Activity diagrams show the overall flow of control.
Activity Diagram for Hospital Management System
A state diagram is a type of diagram used in computer science and related fields to describe the behavior of systems. State diagrams require that the system described is composed of a finite number of states; sometimes, this is indeed the case, while at other times this is a reasonable abstraction. Many forms of state diagrams exist, which differ slightly and have different semantics.

Here is the UML State Model for Hospital Management System implemented in Java.
UML State Model (StateChart) for Hospital Management System
State.java
package SMD3;

public enum State {
  ILL,CURE,APPOINTMENT,DIAGNOSE,CONSULT,MEDICINES
}

Patient.java
package SMD3;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Patient {
 
 private String name;
 private State state;
 
 public void Appointment(){
  Boolean ill=true;
  
  
  setState(State.ILL);
  System.out.println("The Patient is: "+State.ILL);
  System.out.println("Press any Key:");
  try{
   BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
   String str = r.readLine();
  }catch(Exception e){}
  if(ill){
   setState(State.APPOINTMENT);
   System.out.println("The Patient is :  "+State.APPOINTMENT);
  }
  
  }

 public void Consult(){
  try{
   BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
   String str = r.readLine();
  }catch(Exception e){}
  Boolean ill=true;
  if(ill){
  setState(State.CONSULT);
  System.out.println("The Patent is : "+State.CONSULT);
  }
  }
 
 public void Diagnose(){
  try{
   BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
   String str = r.readLine();
  }catch(Exception e){}
  Boolean ill=true;
  if(ill){
   setState(State.DIAGNOSE);
   System.out.println("Patient is under:  "+State.DIAGNOSE);
   setState(State.MEDICINES);
   System.out.println("Patient is give: "+State.MEDICINES);
  }
  
  
 }
 
 public void Illness(){
  Boolean ill=false;
  try{
   BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
   String str = r.readLine();
  }catch(Exception e){}
  if(ill==false){
   setState(State.CURE);
   System.out.println("The Patient is:  "+State.CURE);
  }else{
   setState(State.ILL);
   System.out.println("The Patient is:  "+State.ILL);
   Diagnose();
  }
 }
test.java
package SMD3;

public class test {

 public static void main(String[] args) {
  Patient patient = new Patient();
  patient.Appointment();
  patient.Consult();
  patient.Diagnose();
  patient.Illness();
 }
}

In software engineering, a class diagram in the Unified Modeling Language (UML) is a type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, operations (or methods), and the relationships among objects. The class diagram is the main building block of object-oriented modelling. It is used for general conceptual modelling of the systematic of the application, and for detailed modelling translating the models into programming code. Class diagrams can also be used for data modeling. The classes in a class diagram represent both the main elements, interactions in the application, and the classes to be programmed. 

Here is the UML Class Diagram for Hospital Management System implemented in Java.
Class Diagram for Hospital Management System
This Video Might Be Helpful - Professional Cipher

Hospital Management System Source Code
User.java
package SMD1;

import java.io.*;
import java.util.Scanner;

public class User {
 
 public static void main(String[] args) {
  System.out.println("Enter your choice:1)Receptionist 2)Paient 3)Doctor");
  Scanner sc = new Scanner(System.in);
        int choice = sc.nextInt();
        
    do{
   switch(choice){        
         case 1: Receptionist R = new Receptionist();
           R.Choice();
          break;
         case 2: Patient P = new Patient();
           P.Choice();
       break;
         case 3: Doctor D = new Doctor();
           D.Choice();
       break;        
   }
        }while(choice!=4);
 }
 
}


Receptionist.java
package SMD1;

import java.io.*;
import java.util.Scanner;

public class Receptionist extends User {

 private int r_id;
 private String r_name;
 
 public void Choice(){
  System.out.println("Enter your choice:1)GiveAppoint 2)GenerateBill");
  Scanner sc = new Scanner(System.in);
        int choice = sc.nextInt();
        
        
   switch(choice){        
         case 1: GiveAppoint();
          break;
         case 2: GenerateBill();
       break;
         case 3:  main(null);
   }
   
        
      
  
 }
 public void GenerateBill(){

  Billing B = new Billing();
  int b_no =B.getB_no();
  String p_name =B.getP_name();
  int p_id = B.getP_id();
  int b_amt = B.getB_amt();
  System.out.println("BillNO: "+b_no +"\n PatientID: "+p_id+"\nPatientName: "+p_name+"\nBillAmount: "+b_amt);
  
 }
 
 public void GiveAppoint(){

  Patient P = new Patient();
  String p_name =P.getP_name();
  int p_id = P.getP_id();
  Doctor D = new Doctor();
  int d_id = D.getD_id();
  String d_name = D.getD_name();
  System.out.println("\n PatientID: "+p_id+"\nPatientName: "+p_name+"\nAppointment with Doctor \nDoctorID: "+d_id+
    "\nDoctorName"+d_name);
  
 }
 
}

Patient.java
package SMD1;

import java.util.Scanner;

public class Patient extends User{

 private int p_id=101;
 private String p_name="Anushka";
 
 public void Choice(){
  System.out.println("Enter your choice:1)PayBill");
  Scanner sc = new Scanner(System.in);
        int choice = sc.nextInt();
        
        
   switch(choice){        
         case 1: PayBill();
          break;
         case 2: main(null);
     
   }

 }
 
 public int getP_id() {
  return p_id;
 }

 public void setP_id(int p_id) {
  this.p_id = p_id;
 }

 public String getP_name() {
  return p_name;
 }

 public void setP_name(String p_name) {
  this.p_name = p_name;
 }
 
 public void PayBill(){
  System.out.println("Thanks For Paying Bill");
 }

 
}

Doctor.java
package SMD1;

import java.util.Scanner;

public class Doctor extends User{
 
 private int d_id=301;
 private String d_name="Raju Rastogi";
 
 public int getD_id() {
  return d_id;
 }

 public void setD_id(int d_id) {
  this.d_id = d_id;
 }

 public String getD_name() {
  return d_name;
 }

 public void setD_name(String d_name) {
  this.d_name = d_name;
 }

 public void Choice(){
  System.out.println("Enter your choice:1)CheckPatient");
  Scanner sc = new Scanner(System.in);
        int choice = sc.nextInt();
        
        
   switch(choice){        
         case 1: CheckPatient();
          break;
         case 2: main(null);
     
   }
 }
 
 public void CheckPatient(){
  Patient P = new Patient();
  String p_name =P.getP_name();
  int p_id = P.getP_id();
  System.out.println("Doctor: "+d_name+" has check patient "+p_name);
 }

}

Billing.java
package SMD1;

public class Billing{

 private int b_no=201;
 private int b_amt=1000;
 Patient P = new Patient();
 String p_name =P.getP_name();
 int p_id = P.getP_id();
 public String getP_name() {
  return p_name;
 }
 public int getB_no() {
  return b_no;
 }
 public int getB_amt() {
  return b_amt;
 }
 public Patient getP() {
  return P;
 }
 public int getP_id() {
  return p_id;
 }

 
 
 
}


Click Here For SL3(ICS and ML) Programs