Skip to content

Latest commit

 

History

History
129 lines (86 loc) · 7.55 KB

README.md

File metadata and controls

129 lines (86 loc) · 7.55 KB

Project Name: Populace

Course Number: CSE 299
Section:16
Semester: Summer 2019

Faculty Name: Shaikh Shawon Arefin Shimon

Student Name: Sayeed Md. Shaiban
Student ID: 1621193042
Email: [email protected]

Student Name: Monisha Saha
Student ID: 1631667042
Email: [email protected]

Date prepared: 11/06/2019




Project Name: Populace


Table of contents

  1. Introduction

  2. Software Specification

  3. Technology

  4. BusinessPlan/Monetization

  5. Conclusion



1. Introduction

1.1 Project Idea:

At present times we have various web based tools like google-classroom and piazza to manage resource with a large group of people. These are specially used by educational institutions (e.g. school, college, university) and other organization to communicate with a large number of people, to create workflow etc. But often using different sites simultaneously causes a lot of clutter and becomes cumbersome to keep track of. Hence we offer ‘Populace’ which is a web based application. The reason it stands out from the rest is because it will combine all this separate existing platform into one single platform. By signing in to ‘Populace’ users will be able to see posts made on the other existing web applications and also make their own query. It will therefore be a gathering place especially for students and for people who wants a one-stop solution to keep track of all the accounts in different web platform. Thus creating a better workflow. Primarily, the two platforms that we will include are ‘Google Classroom’ and ‘Piazza’. In the future we also plan to add other platforms similar to the above mentioned names.

2. Software Specification

This project has the following features -

2.1 User Registration:

To access any platform (e.g.piazza,google classroom) users first have to register. Users must include username, firstname, lastname,email and password. The username will be used as a primary key to identify unique users. And so username will have to be unique. And it must contain 150 characters or fewer characters. Letters, digits and @/./+/-/_ are permitted only.


Figure 1.0

2.2 Login to a specific platform :

The main feature of ‘Populace’ is that users will be able to view different platforms on one window after logging in once. This section is know as the profile. The users information is shown on the left as seen in figure 2.0.


Figure 2.0



Currently the following functions are available -

* Users can see all their subject/course in the specific platform.
* Users can add or delete their subject/courses. To easy view which platform contains what subject
* Users will also be able to see posts of the specific subject/course sorted by subject and recent to old.





Figure 3.0

2.3 Admin Panel:

There's also a Admin panel from which the admin can delete unwanted users. Assign new admins with filtered permission and monitor activities.


Figure 4.0

3. Technology

3.1 Proposed Technology Stack:

For UI design we decided to use Bootstrap. Bootstrap is a free and open-source CSS framework directed at responsive front-end web development. It contains CSS and JavaScript-based design templates for typography, forms, buttons, navigation and other interface components. Bootstrap will be used over the usual HTML and CSS. And for the backend we will be using Express.js. It is a web application framework. It is a minimal and flexible Node.js web application framework that provides robust set of features.

Finally, for the database requirement we have opted to use a NoSQL database. And so we have decided to use MongoDB for the projects database requirement. The reason for doing so is because we have only three entities:

  • USER: Will keep info about the users signing in the application.
  • PLATFORM: The platform information for the signed in USER entity.
  • COURSE_INFO: The name of the course/subject associated with the specific platform

3.2 Implemented Technology Stack:

Due to npm api for piazza being old and unusable we have decided to switch our project from node.js to Django.For which our project specification has changed. Django is a high level python-based free and open-source web framework.

For the database requirement we have opted to use a SQL database that comes with Django by default And so we have decided to use sqlite3 for the projects database requirement.

3.2.1 Design Pattern:

By default the Django framework follows the model-view-template pattern which a close immitation of the Model-view-controller. We decided to stay with this MVT pattern

To get the data from the other platforms we used the following APIs–

4. BusinessPlan/Monetization

Google AdSense is the easiest way to monetize a website. It is designed for website developers to display photos, videos, texts on their website. There are different types of ads available in Google AdSense. If our website is Google AdSense approved, Google will post ads on our website. Therefore, we can earn per view. On the other hand, our website can also be used by universities, schools and colleges as a means for them to communicate with their students, so we can make these organizations use our website as their own personal site. It will help the students in their studies. Because they will find Google classroom and piazza in one platform. It will save their time and keep them organized. So we can also approach these educational institutions to adopt our site to their system.

5. Conclusion

In summary Populace is a web-based software that tries to organize life by bringing several platforms together. In this project we achieved most of the functionalities proposed. Except the Business monetization plan using Google-AdSense. We also didn't implement the function of being able to post to the specific platform in this version of the software. During the development process we faced issues trying to integrate Google-classroom. The method of using the API with Google-Oauth did not work out. As a result we decided to go with the auto-generated credentials file by Google instead of using our own credential file. These maybe a issue when we go live with the site. In future, we plan to implement these missing functionalities,come up with better solution for the implementation and make the platform even better.