Collab Report Merged
Collab Report Merged
Submitted By
M. GURU BAIRAVAR (22SUIT04)
V. VINOTH KUMAR (22SUIT18)
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.
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
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
1 Abstract 1
2 Introduction 3
3 System Analysis 6
5 System Design 21
6 System Implementation 41
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.
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.
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
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:
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.
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
11
3.2. PROPOSED SYSTEM
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.
14
4.2. SOFTWARE SPECIFICATION
SERVER
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.
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.
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 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
Student Register
No
Validate
Yes
Login
22
Student Login
Validate
No
Accept / Reject
Friend Request Accept Request Declined
Yes
Start Message
My Profile
Log Out
23
5.2. DATABASE STRUCTURE
Users
Profile
Post
Tag
Follow
24
Column Type Constraints
follower AutoField ForeignKey
following AutoField ForeignKey
Likes
Message
FriendRequest
25
5.3. CODE DESIGN
urls.py
from django.contrib import admin
urlpatterns = [
path('admin/', admin.site.urls),
path('register',views.register,name = 'register'),
#Message Section
path('logout',views.log_out,name = 'logout'),
# profile
26
path('<username>/follow/<option>/', views.follow, name='follow'),
#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'),
views.py
from django.shortcuts import render, redirect, get_object_or_404
from .models import Profile, Department, Stream, Post, Tag, Follow, Likes, Message,
FriendRequest
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')
login(request,user)
return redirect('home')
else:
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)
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
)
return redirect('login')
departments = Department.objects.all()
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 = []
group_ids.append(post.post_id)
post_items = Post.objects.filter(id__in=group_ids).all().order_by('-posted')
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
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.
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.
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
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