0% found this document useful (0 votes)
24 views55 pages

Collab Report Merged

Uploaded by

lokeshjunefour
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views55 pages

Collab Report Merged

Uploaded by

lokeshjunefour
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 55

COLLAB SOCIAL MEDIA WEB APPLICATION

A Major Project Submitted to Thiagarajar College


(Autonomous) Affiliated to Madurai Kamaraj University
In partial fulfillment of the requirement for the degree of
BACHELOR OF SCIENCE IN INFORMATION TECHNOLOGY

Submitted By
M. GURU BAIRAVAR (22SUIT04)
V. VINOTH KUMAR (22SUIT18)

Under the Guidance of

Mrs. M. GAYATHIRI MCA


Assistant Professor,
DEPARTMENT OF COMPUTER APPLICATION
AND
INFORMATION TECHNOLOGY
THIAGARAJAR COLLEGE (AUTONOMOUS)
(Re–Accredited with “A++” Grade by NAAC)
MADURAI - 625009
November-2024
Dr. S. ABIRAMI M. Sc., M. Phil., Ph. D.,
Associate Professor and Head-In-charge,
Department of Computer Application and Information Technology,
Thiagarajar College,
Madurai-625009.

BONAFIDE CERTIFICATE

This is to certify that this Major Project entitled “COLLAB - SOCIAL MEDIA WEB
APPLICATION” submitted by Mr. M. GURU BAIRAVAR (22SUIT04) & Mr.V.VINOTH
KUMAR (22SUIT18) students of Bachelor of Science in Information Technology degree course in
Department of Computer Application and Information Technology, Thiagarajar College (Autonomous),
Madurai, affiliated to Madurai Kamaraj University, Madurai, is a bonafide record of work carried out by
them, under my guidance and supervision as a partial fulfillment of the course.

It is further certified that to the best of my knowledge, this Project report or any other part of
this project has not been submitted in this university or elsewhere for any other degree or
diploma.

Submitted for Viva-Voce held on

Head of the Department Internal Guide


Mrs. M. GAYATHIRI MCA
Assistant Professor,
Department of
Computer Application
and Information
Technology,
External Examiner Thiagarajar College,
Madurai – 625 009.
Mr. M. GURU BAIRAVAR (22SUIT04),

Mr. V. VINOTH KUMAR (22SUIT18),

Bachelor of Science in Information Technology,


Department of Computer Application and Information Technology,
Thiagarajar College,
Madurai–625009.

DECLARATION

This Major Project work entitled “COLLAB” has been carried out by us in the Department of
Computer Application and Information Technology, Thiagarajar College (Autonomous)
Madurai, affiliated to Madurai Kamaraj University, Madurai, in partial fulfillment of the
requirements for the Degree of Bachelor of Science in Information Technology.

We further declare that this major project work or any part of this work has not been submitted
in this university or elsewhere for any other degree or diploma.

Signature

Date: Mr. M. GURU BAIRAVAR (22SUIT04)

Place: Mr. V. VINOTH KUMAR (22SUIT18)


ACKNOWLEDGEMENT

First and foremost, we render our deep and sincere thanks to the Lord
Almighty for his Blessings. He has bestowed us with good health
enabling us to complete our project.
We whole heartedly thank the Management for the golden
opportunity given to us to study in this esteemed Institution.
We take great delight in expressing our thanks to our Principal Dr.
D. Pandiaraja M.Sc., M.Phil., PGDCA., B. Ed., Ph. D. Thiagarajar
College, Madurai, for giving us an opportunity to study in this
institution.
Our special and sincere thanks to Dr. S. Abirami M.Sc., M.Phil.,
Ph.D. Associate Professor and Head-In-charge, Department of
Computer Application and Information Technology , Thiagarajar
college, Madurai for providing laboratory facilities and her timely
support throughout the project.
We immensely pleased to record our profound gratitude and heartfelt
thanks to our esteemed guide Mrs. M. GAYATHIRI MCA Assistant
Professor, Department of Computer Application and Information
Technology, Thiagarajar College, Madurai, for her continuous
guidance, supervision, encouragement and valuable suggestions
throughout the entire project. We deem it as a special privilege to
work under her guidance. We remain forever grateful to her.
We wish to dedicate our thanks to all the staff members and my
friends for their precious support through their prayers in our
hardships and helping us to attain our goal.
At this juncture, we would like to express our heartfelt gratitude to
our ever loving family members for bearing all the inconvenience and
providing their constant support and encouragement now and forever.
Finally we thank all those who have helped us directly and indirectly
for the successful completion of our Project.
TABLE OF CONTENT

CH. NO. TITLE PAGE NO

1 Abstract 1

2 Introduction 3

2.1 Project Description 4

3 System Analysis 6

3.1 Existing System 11

3.2 Proposed System 12

4 Hardware and Software Specification 13

4.1 Hardware Specification 14

4.2 Software Specification 15

4.3 About Software 16

5 System Design 21

5.1. Data Flow Diagram 22

5.2. Database Structure 24

5.3 Code Design 26

5.4 Screen Layout 32

6 System Implementation 41

6.1. Future Enhancements 43

7 System Testing 44

8 Conclusion 47

9 Bibliography 49
1. ABSTRACT

1
“Collab” is a social media app for students to connect with each other. It's like
a virtual campus where we can meet new friends, find study buddies, and collaborate
on projects. The platform aims to foster a vibrant and supportive environment where
students can share ideas, find study buddies, and explore shared interests. The platform
empowers students to create personalized profiles, showcasing their skills, interests,
and academic background.
To get started, we can create a profile that shows our skills and what department
we're in. This helps other students find us based on our interests. We can also explore
profiles of other students and see if they have similar skills or interests. Through these
profiles, students can easily discover and connect with like-minded individuals who
share their passions and goals.
Once a user identifies a potential friend or collaborator, they can send a message
request. If the recipient accepts the request, a connection is established, allowing for
direct communication and interaction. This message request system provides a
structured way for students to initiate and build relationships within the platform. This
is a great way to meet new people and learn from each other.
Collab is a must-have app for any student who wants to connect with other
students and collaborate on projects. It's a fun and easy way to meet new people, make
friends, and learn from each other. Collab is designed to be safe and fun. So if we're
looking for a way to connect with other department students and collaborate on projects,
Collab is the perfect app for us.

2
2. INTRODUCTION

3
2.1. PROJECT DESCRIPTION
MODULES
Administrator login
The Admin Module of Collab is designed to provide administrators with the necessary
tools to manage and maintain the platform effectively. This module encompasses
various functionalities, including User Management and Content Moderation. Through
this module, Administrator can view individual student profiles to monitor information
such as their name, department, skills, and other relevant details.
Administrator can monitor the content of posts created by students, including
text, images, and links, to ensure compliance with platform rules and identify any
potential issues. The Admin Module allows administrators to add and manage
departments and skillsets, providing students with a wider range of options during the
registration process.

User Management Module


This module ensures a seamless user experience by providing efficient mechanisms for
creating accounts, logging in, and updating personal details. The registration process
allows new users to create accounts on the Collab platform. During registration, users
are required to provide essential information such as their name, email address,
password, department, and selected skills. The system validates the entered data to
ensure accuracy and prevent duplicate registrations.
Once the registration is successful, the user is granted access to the platform and
can create a personalized profile. The profile management feature allows users to
update and maintain their personal information on the Collab platform. Users can
modify their name, profile picture, department, and selected skills. This feature
empowers users to keep their profiles up-to-date and accurately reflect their current
interests and affiliations.

Search and Discovery Module


This module provides various search functionalities and recommendations to help users
discover other students with shared interests and skills. Skill-Based Search feature
allows users to search for other students based on their selected skills. Users can enter
specific skills or keywords into the search bar, and the module will return a list of

4
profiles that match the search criteria. This enables users to find potential collaborators
or friends who have similar expertise or interests. The Profile Recommendations feature
suggests potential friends and collaborators based on shared department and similar
skillsets, fostering connections within the academic community.

Social Network Module


The Social Network Module is a core component of the Collab platform that facilitates
social interactions and relationships among users. This module manages friend
requests, establishes and maintains friendships, and enables messaging between
connected users. The module handles the process of sending, receiving, and processing
friend requests. When a user sends a friend request to another user, the request is sent
to the recipient's inbox. The recipient can then choose to accept or reject the request.
If the request is accepted, a friendship is established between the two users. If
the request is rejected, the sender is notified and the friendship is not formed. The
module manages the establishment and maintenance of friendships between users.
Once a friendship is formed, users can interact with each other in various ways, such as
sending messages, commenting on posts, and sharing content.

5
3. SYSTEM ANALYSIS

6
INTRODUCTION

System Analysis and Design, is the process of gathering and interpreting facts,
diagnosing problems and using the information to recommend improvement to the system.
Before development of any project can be pursued, a system study is conducted to learn the
details of the current business solution. Information gathered through the study forms the
basis for creating alternative design strategies. Virtually all organizations are systems that
interact with their environment through receiving input and producing output.
It is a management technique used in designing a new system, improving an existing
system or solving a problem. System analysis does not guarantee that the user will derive an
ideal solution to a problem. This depends solely on the way one design a system to exploit
the potential in the method. To put it in another way, creativity is as much as must pre-design
the study and problem solving process and evaluate every successive step in the system
analysis.
Taking all these factors into account and with the knowledge of the inter-relationship
between the various fields and section and their potential interactions, they are consider for
developing the whole system in and integrated manner, this project is developed to meet all
the criteria in the organization by designing and utilizing models and methodologies to
simulate deployment.
The management technique also helps us in the development and design of the new
system or to improve the existing system.
The following Objectives are kept in mind:
⮚ Identify the customer’s needs.
⮚ Evaluate the system concept for feasibility.
⮚ Perform economic and technical analysis.
⮚ Allocate functions to hardware, software, people, database and other system
elements.
⮚ Establish cost and schedule constraints

⮚ Create a system definition that forms the foundation for all subsequent
engineering work.

7
Identification of the need:

In this, there are certain expressions that are being used in the development of
the project. And, it is used to identify our needs or source in the project.

● Defining a problem
● Finding the various need for the problem
● Formalizing the need

● Relating the need


Thus, it is the first step for a system development life cycle.
Initial Investigation

It is one way of handling the project, it is used to know about the user request
and the modification of the system should be done.
The user’s request for this project is as follows:
1. Assigning separate work area for different users.
2. Nature of the work
3. Regular update and delete of record
4. Regular calculation of Net Asset Value
5. Supplying the data with the time required.

The user request identifies the need for change and authorizes the initial
investigation. It may undergo several modifications before it become a written
commitment. Once approved the activities are carried out into action. The proposal,
when approved, it initiates a detailed user-oriented specification of system performance
and analysis of the feasibility of the evaluating alternative candidate systems with a
recommendation of the best system for the job.

8
Feasibility Study

The objective of the feasibility study is not only to solve the problem but also
to acquire a sense of its scope. The reason for doing this is to identify the most
beneficial project to the organization.
There are three aspects in the feasibility study:
1. Technical Feasibility
2. Operating Feasibility

Technical Feasibility

The Technical feasibility is the study of the software and how it is included in
the study of our project. Regarding this there are some technical issues that should be
noted they are as follows:

● Is the necessary technique available and how it is suggested and


acquired?
● Does the proposed equipment have the technical capacity to hold the
data required using the new system?
● Will the system provide adequate response that is made by the requester
at an periodic time interval
● Can this system be expanded after this project development
● Is there a technique guarantees of accuracy, reliability in case of access
of data and security

The technical issues are raised during the feasibility study of investigating our
System. Thus, the technical consideration evaluates the hardware requirements,
software etc. This system uses JSP as front end and Oracle as back end. They also
provide sufficient memory to hold and process the data. As the company is going to
install all the process in the system it is the cheap and efficient technique.

This system technique accepts the entire request made by the user and
the response is done without failure and delay. It is a study about the resources available

9
and how they are achieved as an acceptable system. It is an essential process for
analysis and definition of conducting a parallel assessment of technical feasibility.

Though storage and retrieval of information is enormous, it can be easily


handled by Oracle. As the oracle can be run in any system and the operation does not
differ from one to another. So, this is effective.

Operational Feasibility

Proposed project will be beneficial only when they are turned into an
information system and to meet the organization operating requirements. The following
issues are considered for the operation:

● Does this system provide sufficient support for the user and the
management?
● What is the method that should be used in this project?
● Have the users been involved in the planning and development of the
projects?
● Will the proposed system cause any harm, bad result, loss of control and
accessibility of the system will lost?

Issues that may be a minor problem will sometimes cause major problem in the
operation. It is the measure of how people can able to work with the system. Finding
out the minor issues that may be the initial problem of the system. It should be a user-
friendly environment. All these aspect should be kept in mind and steps should be taken
for developing the project carefully.

Regarding the project, the system is very much supported and friendly for the
user. The methods are defined in an effective manner and proper conditions are given
in other to avoid the harm or loss of data. It is designed in GUI interface, as working
will be easier and flexible for the user. They are three basic feasibility studies that are
done in every project.

10
3.1. EXISTING SYSTEM

The existing system relies on a combination of platforms like Instagram,


LinkedIn, and WhatsApp, which are not specifically designed within college for the
unique needs of students and academic communities. The existing system within the
college relies on external social media platforms for students to connect and share
information based on their skills. While these platforms offer some level of
functionality, they may not be fully optimized for the specific needs of a college
community.

11
3.2. PROPOSED SYSTEM

Collab is a dedicated social media platform designed specifically for students


within the college. It aims to address the limitations of the existing system by providing
a centralized, integrated, and privacy-focused environment for students to connect,
collaborate, and share information based on their skills. Overall, Collab aims to
revolutionize the way students connect, collaborate, and engage with their academic
community by providing a comprehensive and integrated platform that addresses their
unique needs.

12
4. HARDWARE AND SOFTWARE SPECIFICATION

13
4.1. HARDWARE SPECIFICATION

The above Hardware specifications were used in both Server and Client
machines when developing.

Processor : Intel(R) Core (TM) i5


Processor Speed : 1.30 GHz
Ram : 16 GB
Hard Disk Drive : 512 GB

14
4.2. SOFTWARE SPECIFICATION

SERVER

Technology Used : Django – Python Framework


Database : SQLite
Web Server : Gunicorn
Browser : Chrome

CLIENT

Browser : Chrome

15
4.3. ABOUT SOFTWARE

INTRODUCTION TO DJANGO
Django is an opensource web application frame work written in Python. The
primary goal of Django is to make the development of complex, data-based websites
easier. Thus Django emphasizes the reusability and pluggability of components to
ensure rapid developments. Django consists of three major parts: model, view and
template.

Model
Model is a single, definitive data source which contains the essential field and
behavior of the data. Usually, one model is one table in the database. Each attribute in
the model represents a field of a table in the database.

View
View is short form of view file. It is a file containing Python function which
takes web requests and returns web responses. A response can be HTML content or
XML documents or a 404 error and so on. The logic inside the view function can be
arbitrary as long as it returns the desired response.

Template
Django template is a simple text file which can generate a text-based format like
HTML and XML. The template contains variables and tags. Variables will be replaced
by the result when the template is evaluated. Tags control the logic of the template. We
also can modify the variables by using filters.

Python
Python is the language used to build the Django framework. It is a dynamic
scripting language similar to Perl and Ruby. The principal author of Python is Guido
van Rossum. Python supports dynamic typing and has a garbage collector for automatic
memory management. Another important feature of Python is dynamic name solution
which binds the names of functions and variables during execution.

16
Characteristics of Django
Django, a high-level Python web framework, offers a range of features that
make it a popular choice for building web applications. It emphasizes rapid
development, clean design, and scalability. These characteristics make Django a
powerful and popular framework for web development, enabling developers to build
robust, secure, and scalable applications quickly. Here are some of its key
characteristics:

MVC Architecture
Django utilizes the Model-View-Template (MVT) design pattern, which
separates the business logic, user interface, and data management. This separation of
concerns facilitates easier maintenance and scalability. The Model handles data and
business logic, the View manages user requests and responses, and the Template deals
with the presentation layer.

Robust ORM (Object-Relational Mapping)


Django’s ORM allows developers to interact with the database using Python
objects instead of writing SQL queries. This abstraction simplifies database
manipulation and enhances productivity. With built-in migrations, developers can
easily manage database schema changes over time.

Automatic Admin Interface


One of Django's standout features is its automatically generated admin panel.
This interface allows developers to manage application data easily without having to
build a custom dashboard. It’s highly customizable, enabling quick data management
and facilitating the onboarding of non-technical staff.

Security
Django places a strong emphasis on security, providing built-in protections
against common vulnerabilities such as SQL injection, cross-site scripting (XSS),
cross-site request forgery (CSRF), and clickjacking. By default, Django encourages
best practices and helps developers build secure applications.
Scalability

17
Designed to handle high-traffic applications, Django can scale seamlessly. It
supports caching mechanisms and can work with load balancers and various databases
to manage increased user loads efficiently.

Template Engine
Django comes with a powerful template engine that enables developers to create
dynamic HTML pages. The template system supports template inheritance, making it
easy to maintain a consistent look and feel across an entire application.

Modular Structure
Django promotes modularity through its app structure, allowing developers to
create reusable components. Each app can handle a specific functionality, making it
easy to integrate and maintain.

Multiple Database Support


Django supports several database backends, such as PostgreSQL, MySQL,
SQLite, and Oracle. This versatility allows developers to choose the best data storage
solution for their specific needs.

18
INTRODUCTION TO SQLite

SQLite
SQLite is a lightweight, serverless, relational database management system
(RDBMS) that is embedded within applications. This means it doesn't require a separate
server process to run. Instead, SQLite is integrated directly into the application itself,
making it a convenient and efficient choice for small to medium-sized databases.

One of the key advantages of SQLite is its ease of use. It doesn't require complex
setup or configuration, and the database files are stored as simple files on the local file
system. This makes it easy to deploy and manage SQLite databases within applications.
Additionally, SQLite offers a robust SQL language, allowing you to perform various
database operations like creating tables, inserting data, querying information, and
updating records.

To get started with SQLite, you can download the precompiled binaries for your
operating system from the official SQLite website. Once downloaded, extract the
contents and follow the instructions provided to install and set up SQLite. Alternatively,
you can compile SQLite from source code if you have the necessary tools and
dependencies.

After installation, you can access SQLite using the command-line interface
(CLI) or by integrating it into your application's programming language. The CLI
provides a simple way to interact with SQLite databases and execute SQL commands
directly. Many programming languages also offer libraries and APIs that make it easy
to work with SQLite databases from within your application code.

19
INTRODUCTION TO JAVASCRIPT

JavaScript brings professional programming techniques to HTML web


documents. With JavaScript, we can create documents and applications that
previously could only have been made available as a desktop program written with
something like any Programming Language. It gives us the ability to interact with
and manipulate HTML documents directly from the browser. With JavaScript, we
can even interact with and manipulate the browser it, sending it instructions from
our JavaScript program, and pulling in its variables for our own use.

Above all, JavaScript brings to us true client-side processing, so let's briefly


look at some of the main uses of JavaScript:

● Reference and manipulate document objects

● Reference and manipulate the browser

● Reference the contents of another loaded document or documents

● Store, reference, and manipulate data input by the user

● Store, reference, and manipulate data downloaded from the server

● Perform calculations on data

● Display messages to the user

● Access cookies easily

● Reference and manipulate a wide range of "add-on" components, both


ActiveX controls and Java applets

● Display two-dimensional HTML

JavaScript not only supports the standard document objects, it also allows us to
attach events to these objects. To put this another way, when the user or another part of
our program interacts in some way with a particular object, like a command button, the
browser can automatically run a particular routine within our program. For example, if
the user clicks on a certain button or moves away from a text box, an "event" is fired
that causes a particular routine to execute.

20
5. SYSTEM DESIGN

21
5.1. DATA FLOW DIAGRAM

Admin Login

No
Validate

Yes

Users View Users

Department View & Add

Skill Set View & Add

Student Register

Fill Registration Form

No
Validate

Yes

Login

22
Student Login

Validate

View Post Like

No
Accept / Reject
Friend Request Accept Request Declined

Yes

Start Message

Explore Search Skills Profiles

View Profile Info Follow / Unfollow Make Friend Request

My Profile

View Profile Info Edit Profile Create Post

Log Out

23
5.2. DATABASE STRUCTURE

Users

Column Type Constraints


id AutoField Primary Key
username CharField (150)
email EmailField (254)
password CharField (128)

Profile

Column Type Constraints


user OneToOneField Foreign Key
profile_pic ImageField
first_name CharField (150)
department CharField (150)
skills CharField (150)
bio TextField
created DateField

Post

Column Type Constraints


id AutoField Primary Key
picture ImageField
caption CharField (150)
posted DateTimeField
tag ManyToManyField
user AutoField Foreign Key
likes IntegerField

Tag

Column Type Constraints


title CharField (100) Primary Key
slug SlugField (50)

Follow

24
Column Type Constraints
follower AutoField ForeignKey
following AutoField ForeignKey

Likes

Column Type Constraints


user AutoField Foreign Key
post AutoField Foreign Key

Message

Column Type Constraints


user AutoField Foreign Key
sender AutoField Foreign Key
reciepient AutoField Foreign Key
body TextField
date DateTimeField
is_read BooleanField

FriendRequest

Column Type Constraints


sender AutoField Foreign Key
reciepient AutoField Foreign Key
created_at DateTimeField
accepted BooleanField
declined BooleanField

25
5.3. CODE DESIGN

urls.py
from django.contrib import admin

from django.urls import path

from MyApp import views

from django.conf.urls.static import static

from django.conf import settings

urlpatterns = [

path('admin/', admin.site.urls),

path('',views.log_in, name = 'login'),

path('register',views.register,name = 'register'),

path('home',views.home, name = 'home'),

path('my_collab',views.my_collab, name = 'my_collab'),

#Message Section

path('msg/messaging',views.messaging, name = 'messaging'),

path('msg/<username>', views.Directs, name="directs"),

path('send/', views.SendDirect, name="send-directs"),

path('logout',views.log_out,name = 'logout'),

path('newpost',views.NewPost, name = 'newpost'),

path('<uuid:post_id>/like', views.like, name='like'),

# profile

path('<username>/', views.UserProfile, name='profile'),

26
path('<username>/follow/<option>/', views.follow, name='follow'),

path('profile/edit', views.profile_edit, name="editprofile"),

#friend request

path('send-request/<int:recipient_id>/', views.send_friend_request,
name='send_friend_request'),

path('accept-request/<int:request_id>/', views.accept_friend_request,
name='accept_friend_request'),

path('decline-request/<int:request_id>/',views.decline_friend_request,
name='decline_friend_request'),

urlpatterns += static(settings.MEDIA_URL , document_root =


settings.MEDIA_ROOT)

views.py
from django.shortcuts import render, redirect, get_object_or_404

from django.contrib.auth.forms import UserCreationForm

from django.contrib.auth.models import User

from django.contrib.auth import authenticate,login,logout

from django.contrib import messages

from django import forms

from django.contrib.auth.decorators import login_required

from .models import Profile, Department, Stream, Post, Tag, Follow, Likes, Message,
FriendRequest

from .forms import NewPostform, EditProfileForm

from django.urls import resolve, reverse

from django.http import HttpResponseRedirect

from django.db import transaction

# Create your views here.

27
def log_in(request):

if request.user.is_authenticated:

return redirect('home')

else:

if request.method == 'POST':

username = request.POST.get('username')

password = request.POST.get('password')

user = authenticate(request, username = username , password = password)

if user is not None:

login(request,user)

return redirect('home')

else:

messages.info(request,'Username or Password is incorrect')

return redirect('login')

return render(request,"login.html")

def log_out(request):

logout(request)

return redirect('login')

def register(request):

if request.user.is_authenticated:

return redirect('home')

28
else:

class CreateUser(UserCreationForm):

email = forms.EmailField(required=True)

department = forms.CharField(max_length=100, help_text='department')

skills = forms.CharField(max_length=500, help_text='skills')

class Meta:

model = User

fields = ['username','email','password1','password2','department','skills']

form = CreateUser()

if request.method == 'POST':

username = request.POST.get('username')

password = request.POST.get('password1')

department = request.POST.get('department')

skills = request.POST.get('skills')

form = CreateUser(request.POST)

if form.is_valid():

user = form.save()

username = form.cleaned_data.get('username')

Profile.objects.create(

user = user,

department = department,

skills = skills,

first_name = username

29
)

messages.success(request, 'Account was created for '+username)

return redirect('login')

departments = Department.objects.all()

context = {"form" : form, 'departments':departments}

return render(request,'register.html',context)

@login_required(login_url='login')

def home(request):

user = request.user

posts = Stream.objects.filter(user=user)

liked_posts = Likes.objects.filter(user=user)

suggestions = Profile.objects.filter(department=user.profile.department)

received_requests =
FriendRequest.objects.filter(recipient=request.user,accepted=False,declined=False)

group_ids = []

liked_posts_ids = []

for post in posts:

group_ids.append(post.post_id)

post_items = Post.objects.filter(id__in=group_ids).all().order_by('-posted')

for liked_post in liked_posts:

liked_posts_ids.append(liked_post.post)

skills = request.user.profile.skills

skillsSet = skills.split(',')

30
skillsSet = [element for element in skillsSet if element]

if request.method == 'POST':

query = request.POST.get('search')

if query:

results = Profile.objects.filter(first_name__icontains=query) |
Profile.objects.filter(skills__icontains=query)

else:

results = None

context = {'results': results}

print(results)

# return redirect('my_collab',context)

return render(request,'my_collab.html',context)

31
5.4. SCREEN LAYOUT

Login Page

32
Sign-up Page

33
Home Page

34
Search Results Page

35
Message Page

36
Profile Page

37
Edit Profile Page

38
Others Profile Page

39
Create Post Page

40
6. SYSTEM IMPLEMENTATION

41
Implementation is the stage in the project where the theoretical design is turned
into a working system. The most critical stage is achieving a successful system and in
giving confidence on the new system for the users, what it will work efficient and
effectively. It involves careful planning, investing of the current system, and its
constraints on implementation, design of methods to achieve the changeover methods.
The implementation process begins with preparing a plan for the
implementation of the system. According to this plan, the activities are to be carried out
in these plans; discussion has been made regarding the equipment, resources and how
to test activities.
The coding step translates a detail design representation into a programming
language realization. Programming languages are vehicles for communication between
human and computers programming language characteristics and coding style can
profoundly affect software quality and maintainability. The coding is done with the
following characteristics in mind.
● Ease of design to code translation.
● Code efficiency.
● Memory efficiency.
● Maintainability.
The user should be very careful while implementing a project to ensure what
they have planned is properly implemented. The user should not change the purpose of
project while implementing. The user should not go in a roundabout way to achieve a
solution; it should be direct, crisp and clear and up to the point.

42
6.1 Future Enhancements

• Expanded features:
o Adding new features, such as group messaging, video conferencing, and
gamification elements, could enhance the user experience and encourage
more active engagement. Introduce group chat functionality to enable
efficient communication among multiple users. Group chats can be used
for various purposes, such as discussing assignments, planning events,
or simply socializing with friends and classmates.
o You can also implement features like direct messaging, file sharing, and
voice messages to enhance the group chat experience.

• Mobile optimization:
o Responsive Design ensure the platform adapts seamlessly to different
screen sizes and devices, providing a consistent user experience across
mobile, tablet, and desktop.
o Optimizing the application for mobile devices can make it more
accessible to students who primarily use their smartphones.

• Event Management:
o This provides a comprehensive event management system that allows
users to create, manage, and promote events within the college
community. This system should include features such as event creation
and customization, event promotion, event registration, event reminders
and event feedback.

• Sensitivity Control Mechanism:


o By Implementing this mechanism, the student can create a more
inclusive environment, protect users from harmful content, enhance user
satisfaction, demonstrate commitment to safety and well-being.
o By prioritizing user well-being and creating a safe and inclusive
environment, you can foster a thriving and positive online community
within your intra college social media web application.

43
7. SYSTEM TESTING

44
System Testing is an important stage in any system development life cycle.
Testing is a process of executing a program with the intention of finding errors. The
importance of software testing and its implications with respect to software quality
cannot be overemphasized. Software testing is a critical element of software quality
assurance and represents the ultimate review of specification, design and coding. A
good test case is one that has a high probability of finding a yet undiscovered error.
Testing is the set of activities that can be planned in advance and conducted
systematically. Different test conditions should be thoroughly checked and the bugs
detected should be fixed. The testing strategies formed by the user are performed to
prove that the software is free and clear from errors. To do this, there are many ways of
testing the system’s reliability, completeness and maintainability.

Unit Testing
In the unit testing the analyst tests the program making up a system. The
software units in a system are the modules and routines that are assembled and
integrated to perform a specific function. In a large system, many modules on different
levels are needed.
Unit testing can be performed from the bottom up starting with the smallest and
lowest level modules and proceeding one at a time. For each module in a bottom-up
testing, a short program executes the module and provides the needed data.
Unit testing was conducted on the user registration module to ensure that
passwords are not common and match the confirmation password. This involved testing
with a variety of password inputs, including common passwords, weak passwords, and
strong passwords. The system was expected to reject common passwords and ensure
that the password and confirmation password match exactly.

Integration Testing
Integration testing is a systematic technique for constructing the program
structure while conducting test to uncover errors associate with interfacing. Objectives
are used to take unit test modules and built program structure that has been directed by
design.
The integration testing is performed for this Project when all the modules where
to make it a complete system. After integration the project works successfully.

45
Integration testing of the post creation module included verifying its
compatibility with different content types (text, images) and user privacy settings. We
tested whether the module could correctly handle various types of content, including
text-only posts, posts with images.

Validation Testing
Validation testing can be defined in many ways, but a simple definition is that
can be reasonably expected by the customer.
Proposed system under consideration has been tested by using validation testing
and found to be working satisfactorily.
For example, in this project validation testing is performed against user module.
This module is tested with the following valid and invalid inputs for the field staff id.
Validation testing was conducted to ensure that the social media web
application adhered to strict data quality standards. This involved verifying that all
mandatory fields were filled out correctly, data was entered in the appropriate format,
duplicate entries were prevented, and the interaction between different components was
seamless and efficient.

White Box Testing


White box testing, sometimes called glass-box testing is a test case design
method that uses the control structure of the procedural design to derive test cases.
Using white box testing methods, the software engineer can derive test cases that
● Guarantee that all independent paths with in a module have been exercised
at least once.
● Exercise all logical decisions on their true and false sides.

Black Box Testing


This method treats the coded module as a black box. The module runs with
inputs that are likely to cause errors. Then the output is checked to see if any error
occurred. This method cannot be used to test all errors, because some errors may depend
on the code or algorithm used to implement the module.

46
8. CONCLUSION

47
By providing a centralized space for students, faculty, and staff to connect,
share information, and participate in various activities, the application has fostered a
sense of belonging and community within the college. Overall, the Intra College Social
Media Web Application has proven to be a valuable asset to the college community.
By providing a platform for connection, collaboration, and engagement, the application
has contributed to a more vibrant and inclusive campus environment. As the application
continues to evolve, it has the potential to become an even more essential tool for
students, faculty, and staff.

48
9. BIBLIOGRAPHY

49
Reference Books

• Martin C Brown, Python - The Complete reference, Fourth Edition, Tata


McGraw Hill, 2018.
• William S. Vincent, 2018 - DJANGO for Beginners Build websites with
Python and Django.
• Jay A. Kreibich, 2010 - Using SQLite: Small, Fast, Reliable
• Thomas Powell, Fritz Schneider, 2004 - JavaScript: The Complete
Reference, 2nd edition

Reference Links

• https://www.djangoproject.com/start/
• https://www.python.org/doc/
• https://en.wikipedia.org/wiki/Django_(web_framework)
• https://docs.djangoproject.com/
• https://www.sqlite.org/docs.html

50

You might also like