1. DESIGN AND IMPLEMENTATION OF AN ONLINE
INTERACTION FORUM FOR NITC
A PROJECT REPORT
Submitted by
JITENDRA KUSHVAHA
M130290CA
In partial fulfillment for the award of the degree of
MASTER OF COMPUTER APPLICATIONS
Under the guidance of
Dr. VINOD PATHARI
(Associate Professor, Dept. of Computer Science and Engineering)
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
NATIONAL INSTITUTE OF TECHNOLOGY CALICUT
NITC CAMPUS PO, CALICUT
KERALA, INDIA 673601
JUNE 2016
2. i
ACKNOWLEDGEMENTS
I take this opportunity to express my sincere gratitude to all individuals, directly or
indirectly, who have contributed towards the completion of this major project report. I
would like to express my heartfelt gratitude to my internal project guide, Dr. Vinod
Pathari, Associate Professor, CSED Department, NIT Calicut, for their guidance,
support and cooperation throughout this work.
Jitendra Kushvaha National Institute of Technology, Calicut
3. ii
DECLARATION
“I hereby declare that this submission is my own work and that, to the best of my
knowledge and belief, it contains no material previously published or written by
another person nor material which has been accepted for the award of any other
degree or diploma of the university or other institute of higher learning, except
where due acknowledgment has been made in the text.”
Place: NIT Calicut Signature:
Date: 29st
June, 2016 Name: JITENDRA KUSHVAHA
Reg. No: M130290CA
4. iii
CERTIFICATE
This is to certify that the report on “Design and Implementation of an Online
Interaction Forum for NITC” submitted by Mr. Jitendra Kushvaha to the National
Institute of Technology Calicut towards partial fulfilment of the requirements for
the award of the Degree of Master of Computer Applications is a bona fide record
of the work carried out by him under our supervision and guidance.
Signed by Project Supervisor(s) with name(s) and date
Place: NITC
Date: 30-June-2016
Signature of Head of the Department
(Office Seal)
5. iv
CONTENTS
ABSTRACT...........................................................................................................vii
LIST OF FIGURES ............................................................................................. viii
LIST OF TABELS..................................................................................................ix
CHAPTER 1- INTRODUCTION............................................................................1
1.1 PROBLEM DEFINITION .............................................................................1
1.2 BACKGROUND DETAILS..........................................................................1
CHAPTER 2 – OVERVIEW...................................................................................2
2.1 MODULES.....................................................................................................2
2.2. USERS OF THE SYSTEM...........................................................................2
2.2.1. Administrator Functions.........................................................................2
2.2.2. Group Manager Functions......................................................................2
2.2.3. NITC Users Functions............................................................................2
CHAPTER 3 – DESIGN..........................................................................................3
3.1 USE CASES...................................................................................................3
3.1.1 System Use Case Diagram ......................................................................3
3.1.2 Normal User Use Case Diagram .............................................................4
3.1.3 Group Manager Use Case Diagram.........................................................5
3.1.4 Admin Use Case Diagram .......................................................................6
3.2. ER DIAGRAM..............................................................................................7
3.3. FUNCTIONAL REQUIREMENTS .............................................................7
3.3.1 User Use Case:.........................................................................................7
3.3.2 Group Manager Use Case:.......................................................................8
3.3.3 Admin Use Case:.....................................................................................8
7. vi
4.2.5.1.2 Admin Manage User Page ......................................................17
4.2.5.1.3 Admin Manage Member Page ................................................17
4.2.5.1.4 Admin Manage Posts Page .....................................................18
4.2.5.1.5 Admin Manage Comments Page ............................................18
4.2.5.1.6 Admin Manage Group Posts Page ..........................................19
4.2.5.1.7 Admin Manage Group Comments Page .................................19
4.2.5.2 Group Manager ..............................................................................20
4.2.5.2.1 Group Manager Dashboard Page............................................20
4.2.5.2.2 Group Manager Delete Post Page...........................................20
4.2.5.2.3 Group Manager Delete Comment Page ..................................21
4.2.5.3 NITC Users ....................................................................................21
4.2.5.3.1 User Dashboard Page..............................................................21
4.2.5.3.2 Update Profile Page ................................................................22
4.2.5.3.3 New Post Page ........................................................................22
4.2.5.3.4 Request Creation of New Group Page....................................23
4.2.5.3.5 Join Group Page......................................................................23
4.2.5.3.5.1 Group Post Dashboard Page ............................................24
4.2.5.3.5.1.1 New Group Post Page ...................................................24
4.2.5.3.5.1.2 Edit Group Post Page....................................................25
4.2.5.3.5.1.3 Comment on Group Post Page......................................25
CHAPTER 5 – TEST SUMMARY AND CONCLUSION...................................26
REFERENCES ......................................................................................................28
8. vii
ABSTRACT
“Design and Implementation of an Online Interaction Forum for NITC” is an online
forum dedicated to NIT Calicut community. The system provides interaction among
students, faculty members and staff.
Users can subscribe to groups of their choice. In a subscribed group, they will be
able to post new topics and reply/comment on existing ones.
A topic thread structure will be followed within a given group. Based on the
category of user - student (UG/PG/Ph.D.) / faculty member / staff / admin, there
will be some default groups for them. He/she can subscribe to many other open
groups. There will be some groups to which only users of a certain type are allowed.
9. viii
LIST OF FIGURES
Figure 3.1 System Use Case ...................................................................................3
Figure 3.2 Normal User Use Case ..........................................................................4
Figure 3.3 Group Manager Use Case......................................................................5
Figure 3.4 Admin Use Case ....................................................................................6
Figure 3.5 ER-Diagram...........................................................................................7
Figure 4.1 Home Page...........................................................................................14
Figure 4.2 Search Page..........................................................................................14
Figure 4.3 Registration Page.................................................................................15
Figure 4.4 About Page ..........................................................................................15
Figure 4.5 Login Page...........................................................................................16
Figure 4.6 Admin Dashboard Page.......................................................................16
Figure 4.7 Admin Manage User Page...................................................................17
Figure 4.8 Admin Manage Member Page.............................................................17
Figure 4.9 Admin Manage Posts Page..................................................................18
Figure 4.10 Admin Manage Comments Page .......................................................18
Figure 4.11 Admin Manage Group Posts Page.....................................................19
Figure 4.12 Admin Manage Group Comments Page............................................19
Figure 4.13 Group Manager Dashboard Page.......................................................20
Figure 4.15 Group Manager Delete Comment Page.............................................21
Figure 4.16 User Dashboard Page.........................................................................21
Figure 4.17 Update Profile Page...........................................................................22
Figure 4.18 New Post Page...................................................................................22
Figure 4.19 Request Creation of New Group Page...............................................23
Figure 4.20 Join Group Page.................................................................................23
Figure 4.21 Group Post Dashboard Page..............................................................24
Figure 4.22 New Group Post Page........................................................................24
Figure 4.23 Edit Group Post Page.........................................................................25
Figure 4.24 Comment on Group Post Page...........................................................25
10. ix
LIST OF TABELS
Table 4.1 User........................................................................................................11
Table 4.2 Post.........................................................................................................11
Table 4.3 Comment................................................................................................12
Table 4.4 Group Request .......................................................................................12
Table 4.5 Member..................................................................................................12
Table 4.6 Group Post .............................................................................................13
Table 4.7 Group Comment ....................................................................................13
Table 5.1 Smoke Testing .......................................................................................27
11. NIT CALICUT, MCA 2016
1 JITENDRA KUSHVAHA
CHAPTER 1- INTRODUCTION
1.1 PROBLEM DEFINITION
To develop an online forum specific for NITC members. Users can subscribe to
groups of their interest and can add posts or post comments to posts in the group.
Users will receive an alert mail when a new post is added in the group. All
maintenance operations such as add groups, delete older post, etc. are managed by
admin.
Features of the system :
Discussion on posts and comments.
User Login with Google OAuth using NITC mail ID.
Group based control functions.
Reduced spamming.
Only for NITC members.
1.2 BACKGROUND DETAILS
The already existing blogs/forums on the internet/world wide web like Quora are
made for general public. At present, there is no internal forum for NITC. There is
no existing system where NITC members can collaborate, share their ideas and
views.
12. NIT CALICUT, MCA 2016
2 JITENDRA KUSHVAHA
CHAPTER 2 – OVERVIEW
2.1 MODULES
Administrator.
NITC users (student / faculty / staff).
2.2. USERS OF THE SYSTEM
Administrator.
Group Manager.
NITC users (student / faculty / staff).
2.2.1. Administrator Functions
Maintain the user’s posts, comments.
Create and maintain the groups.
2.2.2. Group Manager Functions
Request for delete the group.
Add new members in the group.
Remove members from the group.
Remove posts.
Put restriction in the group.
2.2.3. NITC Users Functions
Add a post.
Subscribe to groups.
Comment on the posts.
Search for topics of his/her interest.
13. NIT CALICUT, MCA 2016
3 JITENDRA KUSHVAHA
CHAPTER 3 – DESIGN
3.1 USE CASES
3.1.1 System Use Case Diagram
Figure 3.1 System Use Case
14. NIT CALICUT, MCA 2016
4 JITENDRA KUSHVAHA
3.1.2 Normal User Use Case Diagram
Figure 3.2 Normal User Use Case
Description:
Users from NITC can post and comment. If there is a need for creation of a group
then the user can request to the admin for creation of a new group. There will be
many open groups already available which the user may join. Users can post and
comment. Managers can delete any post in the group.
15. NIT CALICUT, MCA 2016
5 JITENDRA KUSHVAHA
3.1.3 Group Manager Use Case Diagram
Figure 3.3 Group Manager Use Case
Description:
A Group manager is assigned by the admin to a group. Group managers have
privilege to send request for deleting the group to the admin, add new members to
the group, remove posts in the group and remove members in the group. Group
managers also have privilege for restricting a particular user for accessing the group.
16. NIT CALICUT, MCA 2016
6 JITENDRA KUSHVAHA
3.1.4 Admin Use Case Diagram
Figure 3.4 Admin Use Case
Description:
The admin creates groups on the user requests and the user who requests for the
creation of group becomes the group manager. Admin can remove groups or posts.
17. NIT CALICUT, MCA 2016
7 JITENDRA KUSHVAHA
3.2. ER DIAGRAM
Figure 3.5 ER-Diagram
3.3. FUNCTIONAL REQUIREMENTS
3.3.1 User Use Case:
Login with NITC Mail: A NITC member can log in. The user must have a NITC
email ID. After Login the user can perform the following operation.
Request for Joining Groups: A user can send request for joining a group to the
group manager.
Request for Creation of Group: If a user needs creation of a new group then the
user can send a request to the admin. He/she will be chosen as Group manager by
the admin.
18. NIT CALICUT, MCA 2016
8 JITENDRA KUSHVAHA
View Posts and Comments: Users can view posts and comments in groups in
which they are added.
Add Posts: A user can add new posts, new comments in a post. Images can also be
attached in a post or comment.
Edit Posts and Comments: A user is able to edit his/her posts and comments.
Search: A user can search for posts.
3.3.2 Group Manager Use Case:
Login with NITC Mail: A mandatory NITC email id for logging in. After logging
in a group manager can perform the following operation.
Request for Deleting a Group: Group managers can send requests for delete a
group to the admin.
Add Members: Only the group manager and the admin can add and remove
members to a particular group.
Remove Post: Group managers can delete posts in a group.
Restrict Group: Group managers can restrict some users in the group.
3.3.3 Admin Use Case:
Login: The admin must have to log in before to perform following operations.
Unauthorized persons cannot access the system.
Create and Delete Group: The admin can create and delete a group.
Assign Group Manager: Group managers are assigned by the admin.
19. NIT CALICUT, MCA 2016
9 JITENDRA KUSHVAHA
3.4. NON- FUNCTIONAL REQUIREMENTS
3.4.1 Security
Users must log in before they can use the system.
3.4.2 Reliability
When a group is created by the admin, then same group cannot be created twice.
3.4.3 Usability
The users can easily search for posts and comments, if it is not match is found then
the following message is displayed “this posts is not found”.
3.4.4 Maintainability:
The admin maintains the group creation and deletion. Group manager also
maintains the posts, members in a group, and restrict the group.
3.5. SOFTWARE REQUIREMENTS
Web-Technologies : HTML ,JavaScript, CSS, JQuery
Languages : Ruby 2.3.0
Framework : Rails 4.2
Web Server : Apache
Backend Database : SQLite, Postgres
3.6. HARDWARE REQUIREMENTS
Processor : Pentium IV or above
RAM Capacity : 2GB
Hard Disk : 150GB
20. NIT CALICUT, MCA 2016
10 JITENDRA KUSHVAHA
CHAPTER 4 – IMPLEMENTATION
The system is implemented in Ruby on Rails web framework. The first design
choice was to make the system on an MVC framework. Ruby on Rails is a very
robust, scalable and rich framework. The feature of this framework are – high
portability, can be used with variety of databases (Relational DBMS like Sqlite,
MySQL; Object oriented databases like Postgres), can be ported to different
webservers like apache, NGINX; can be run on both Linux or Windows operating
systems. The major challenge in the implementation has been the proper user
session handling.
21. NIT CALICUT, MCA 2016
11 JITENDRA KUSHVAHA
4.1. DATABASE
4.1.1 User
Table 4.1 User
4.1.2 Post
Table 4.2 Post
22. NIT CALICUT, MCA 2016
12 JITENDRA KUSHVAHA
4.1.3 Comment
Table 4.3 Comment
4.1.4 Group Request
Table 4.4 Group Request
4.1.5 Member
Table 4.5 Member
23. NIT CALICUT, MCA 2016
13 JITENDRA KUSHVAHA
4.1.6 Group Post
Table 4.6 Group Post
4.1.7. Group Comment
Table 4.7 Group Comment
29. NIT CALICUT, MCA 2016
19 JITENDRA KUSHVAHA
4.2.5.1.6 Admin Manage Group Posts Page
Figure 4.11 Admin Manage Group Posts Page
4.2.5.1.7 Admin Manage Group Comments Page
Figure 4.12 Admin Manage Group Comments Page
30. NIT CALICUT, MCA 2016
20 JITENDRA KUSHVAHA
4.2.5.2 Group Manager
4.2.5.2.1 Group Manager Dashboard Page
Figure 4.13 Group Manager Dashboard Page
4.2.5.2.2 Group Manager Delete Post Page
Figure-4.14 Group Manager Delete Post Page
31. NIT CALICUT, MCA 2016
21 JITENDRA KUSHVAHA
4.2.5.2.3 Group Manager Delete Comment Page
Figure 4.15 Group Manager Delete Comment Page
4.2.5.3 NITC Users
4.2.5.3.1 User Dashboard Page
Figure 4.16 User Dashboard Page
32. NIT CALICUT, MCA 2016
22 JITENDRA KUSHVAHA
4.2.5.3.2 Update Profile Page
Figure 4.17 Update Profile Page
4.2.5.3.3 New Post Page
Figure 4.18 New Post Page
33. NIT CALICUT, MCA 2016
23 JITENDRA KUSHVAHA
4.2.5.3.4 Request Creation of New Group Page
Figure 4.19 Request Creation of New Group Page
4.2.5.3.5 Join Group Page
Figure 4.20 Join Group Page
34. NIT CALICUT, MCA 2016
24 JITENDRA KUSHVAHA
4.2.5.3.5.1 Group Post Dashboard Page
Figure 4.21 Group Post Dashboard Page
4.2.5.3.5.1.1 New Group Post Page
Figure 4.22 New Group Post Page
35. NIT CALICUT, MCA 2016
25 JITENDRA KUSHVAHA
4.2.5.3.5.1.2 Edit Group Post Page
Figure 4.23 Edit Group Post Page
4.2.5.3.5.1.3 Comment on Group Post Page
Figure 4.24 Comment on Group Post Page
36. NIT CALICUT, MCA 2016
26 JITENDRA KUSHVAHA
CHAPTER 5 – TEST SUMMARY AND CONCLUSION
Use case Actor Expected result Result
Registration
Group Manager and
NITC Users
User successfully
register and redirect to
user dashboard page
pass
Login
Admin Successfully login to
admin dashboard
Pass
Group manager Successfully login to
group manager
dashboard
Pass
NITC users Successfully login to
NITC user dashboard
pass
Post
Any Any users can post
within group and
outside of group
pass
Create group
NITC users Request for creating
new group
Pass
Group managers Request for creating
new group
Pass
Admin Assign group manager Pass
Comment
Any Any users can post
within group and
outside of group
Pass
Delete posts and
comments
Group manager Can delete posts and
comments of their
Group
Pass
37. NIT CALICUT, MCA 2016
27 JITENDRA KUSHVAHA
Admin Can delete posts and
comments of any
group
Pass
Search post Any Any users can search
posts
Pass
Update Profile Group manager Update their profile Pass
NITC users Update their profile Pass
Table 5.1 Smoke Testing
The main objective of the project is to develop an Online Forum exclusively for NITC users and
reduce spamming in the official NITC mail domain. With the help of this web application NITC
users can add posts and comments. Users can request to create group and in his/her group, can post
and comment.
38. NIT CALICUT, MCA 2016
28 JITENDRA KUSHVAHA
REFERENCES
[1] Question and Answer Site. http://stackoverflow.com/. Accessed on 2nd
January.
[2] Ruby on Rails Tutorial Site. https://hackhands.com/ruby-rails-tutorial-creating-rails-
instance-existing-mysql-db/. Accessed on 7nd
January.
[3] Find, Install, and Publish Ruby Gem Site. http://guides.rubygems.org/.
Accessed on 10th
January.
[4] Ruby on Rails Official Tutorial Site. http://guides.rubyonrails.org/getting_started.html.
Accessed on 2nd
January
[5] Convert SQLite Database into Postgres Database Site.
https://medium.com/@helenflam/how-to-change-your-rails-app-database-from-sqlite- to-
postgresql-before-deploying-to-heroku-ae2acc25c7ac#.541l6qdc9. Accessed on 1st
March
[6] Video Tutorial of Ruby on rails Channel https://www.youtube.com/watch?v=fd1Vn-
Wvy2w. Accessed on 10th
January.
[7] Video Tutorial of Ruby on rails Channel.
https://www.youtube.com/watch?v=exEduZlJS7Q&list. Accessed on 22nd
January.
[8] Tutorial for Host website on the Server. https://devcenter.heroku.com/articles/getting-
started-with-rails4. Accessed on 21st
March.
[9] Video Tutorial of Ruby on rails Channel.
https://www.youtube.com/channel/UCfWZwsP8trUy5uHJg8gcGIQ. Accessed on 2nd
January.
[10] Implement of OAuth Authentication Site. http://oauth.net/. Accessed on 22nd
February.
[11] Implement of OAuth Authentication Site. https://www.sitepoint.com/rails-authentication-
oauth-2-0-omniauth/. Accessed on 25th
February.