Вы находитесь на странице: 1из 3

Life@IITK

Programming Club
July 8 2019

1 Introduction
With the plethora of activities going on in the campus, going through the Face-
book pages and mails for any information becomes cumbersome. Student partic-
ipation in various activities has seen a decline because people fail to go through
their Facebook feed or the mails.
We have come up with an idea which would revolutionize the way people
are kept up-to-date with their interested activities. We would like to provide
an application which caters to all the needs of a person ranging from provid-
ing updates of various activities to filing nominations and much more. This
application would be called Life@IITK.
We have created 2 versions of this, a web application as well as a mobile
application.

2 Web Application
2.1 Frontend
For the frontend development, React JS framework has been used. Material UI,
a library to support React Designs has also been used.
The Side Bar contains tabs which redirect the user to different functionalites
which the app can be used for.

2.1.1 Feed
The feed is the homepage that has the information of different events that are
happening on campus.
A user can subscribe to ”tags”, which are indicators of what he/she is in-
terested in. Only the events of the subscribed tags will be displayed in the
feed.
Each event has a brief description of the event, along with details of the
event. There is an option to see a more elaborate description of the concerned
event as well.

1
2.1.2 Calendar
The calendar shows all events that a user has subscribed to, with time and venue.
This makes it convenient for a user to look at all events in their schedule.

2.1.3 Map
A map of the campus is shown. Here, all events that are happening at a par-
ticular venue will be shown when the venue is selected. Note that throughout
this application, only those events with tags that have been subscribed to are
shown.

2.1.4 Mess
Mess menus of all halls of residence are available. They have been arranged
day-wise and hall-wise.

2.1.5 Profile
The profile page contains the personal details of the user along with an ”Aca-
demics” section that shows all courses of the student, along with venue and
timings. There is also a separate section dedicated to Positions of Responsibil-
ity.

2.1.6 Admin
This is a feature that only some users will be given access to. Here, events can
be created and deleted.
Creating an event includes the following details: Name of organizing body,
logistics like date, time, venue and tags that the event is concerned with.

2.2 Backend
Backend is written in the django framework of python and database is setup on
PostgreSQL. The relational database connects each user with the events they
follow using tags and their courses.

2.2.1 User
The user can log in using their cc username and password. The sessions are
stored in the backend only and a single cookie is sent to client which contains a
sufficiently large session id providing sufficient security.
/users/auth/login/ - User can log in using their CC username and password.
This creates a session id cookie in the browser to authenticate other re-
quests.
/users - User can change their facebook link from the profile UI.

2
/users/auth/logout - Deletes the session and logs out the user.
/users/acads - Returns all the courses the user has added to his profile.
/users/owned - Returns the tags owned by user i.e. the tags user is authorised
to create and delete events for.
/users/course/delete/ - Used to remove the courses from users profile.
/users/tags/delete/ - Used to remove the tags from followed list of a user.

2.2.2 Academics
/acads/all - Returns all the courses offered in upcoming year.

2.2.3 Events
/events/view/venue - Returns the events filtered by the venue.
/events/view/month - Returns the events that are scheduled in the queried
month.
/events/feed - Returns the events that are of the tags followed by user.

/events/feed/month - Returns the events from tags followed by user but of


the queried month.
/events/create/ - This API is for creating new events. This can only be
accessed by people who are authorised to create events

/events/delete - This is used for deleting the events. It can only be accessed
by authorised people.
/events/all - Returns all the events in database. This can be accessed by
everyone.

2.2.4 Tags
/tags/all - Returns all the tags that exist in database.

3 Mobile Application
The mobile application has been developed using React Native. NativeBase is
a UI library that has been used to support the designing.
All features of the mobile application are identical to the web application.

Вам также может понравиться