Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

_projects: Add "Enhance Website Architecture" project to projects list #719

Merged
merged 1 commit into from
Aug 24, 2019

Conversation

KVGarg
Copy link
Contributor

@KVGarg KVGarg commented Mar 6, 2019

This commit adds new Project Proposal - "Enhance
websites architecture" to current projects list.

Closes #691

@TravisBuddy

This comment has been minimized.

@KVGarg KVGarg force-pushed the add-proposal-to-list branch from 68fdcce to 8c9b293 Compare March 6, 2019 09:33
@TravisBuddy

This comment has been minimized.

@KVGarg KVGarg force-pushed the add-proposal-to-list branch from 8c9b293 to ccc3950 Compare March 6, 2019 09:37
@TravisBuddy

This comment has been minimized.

@KVGarg KVGarg force-pushed the add-proposal-to-list branch from ccc3950 to 0fa7707 Compare March 7, 2019 18:32
@TravisBuddy

This comment has been minimized.

@KVGarg KVGarg force-pushed the add-proposal-to-list branch from 0fa7707 to 89dc9ef Compare March 7, 2019 18:38
@TravisBuddy

This comment has been minimized.

@KVGarg KVGarg force-pushed the add-proposal-to-list branch from 89dc9ef to c2cd51b Compare March 8, 2019 04:37
@TravisBuddy

This comment has been minimized.

@KVGarg KVGarg force-pushed the add-proposal-to-list branch from c2cd51b to 7345fbb Compare March 10, 2019 18:21
@TravisBuddy

This comment has been minimized.

@KVGarg KVGarg force-pushed the add-proposal-to-list branch from 7345fbb to 1020cf5 Compare March 11, 2019 16:09
@TravisBuddy

This comment has been minimized.

Copy link
Member

@sks444 sks444 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice research. :)

I have added few comments, lets discuss those to refine the idea.

also to make this project strong/better we need to figure out a way to fix landing project...first, lets fix the supply of data, have continuous deployment of the data, then we proceed on how to show those data in a better way.


i. Addition of more data fields in **Users** db model

j. Add **Login and Sign-up** using GitHub
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

community project is a static project we are not storing any user data, it would not be feasible to implement this.

also why do we need to have these functionalities?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Without Authentication, GitHub API calls limit to only 60 per hour. The main objective to add login is to increase the limit to 5k per hour.
Since we can add a single OAuth token (created by the organization) but that won't help because updating the records in the database for all users will surely increase the 5k limit. Also, there will be other jobs running in the background.
So, adding login will help to update the user records on a regular basis with a limit up to 5k per hour.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't we make it feasible by not removing db.sqlite3, that is removed whenever CI runs on a new change ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, community website will not be having any database, we just consume apis, do some analysis on that if needed and show it. Anything you want to implement which required data storage, implement it in the landing project, build apis and use it here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I forgot to tell earlier that for user login, I will be using django-allauth instead of Django login system. Then, in that case, I guess it will be feasible.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sry, I couldn’t rply late night. Got into bed due to midterm exam having today. Will look the cron file, to get more information and will get back too u soon 🙂

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have looked over how currently org GitHub API key is in use. We can also use it to perform new cron jobs that I am looking forward to adding into coala-webservices. But we'll have to take care of jobs being performed because we have an only 5k limit per hour. So, jobs will be carried out at different times(every hour).
So, should I remove this from PR as well as from application?

Copy link
Contributor Author

@KVGarg KVGarg Mar 16, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But login was a way for authenticated users to see the profile from which they will have access to new enhancements -

  1. Promotion to developer status
  2. Getting assigned to an issue
  3. Participate as mentor
  4. Extension to non-availability period during GSoC
  5. Google forms

It was a way to avoid spamming. Removal of authentication can lead to spam.
Other users can also check the profile of other users but won't be able to options stated above.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Promotion to developer status...

I believe we could do these thing from the leaderboard dashboard right?

Anyway, we couldn't have a separate profile page for each contributor. That would require generating thousands of pages, which would take time, which would hit netlify time limit.

Also we have another problem currently, we don't know why netlify fail when deploying more number of pages. see coala/community#152, so you could have the same problem while generating separate pages for each contributor.

Copy link
Contributor Author

@KVGarg KVGarg Mar 17, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

leaderboard dashboard right?

We can do this by providing that option either beside the username of currently logged in user or by showing it somewhere at the upper-right corner of page/leaderboard.
But I was thinking to add it into the profile.

we couldn't have a separate profile page for each contributor.

I know that community website is a static website and creating thousands of profile pages for each contributor is not recommendable but can't we make it a little-bit dynamic which can make user-interaction more and spread the word about the community that takes cares of its contributor by helping them to analyze their contributions and their potential. I would be using multi-processing to make API Endpoints call because it has to query nearly 3-4 DB models to display user data on that profile page.
Since the leaderboard and other pages will also be dynamic because stats will change with time.
Making website dynamic is helping a lot to the community to spread its idea to other open-source communities.


b. **[UI](https://coala-community.netlify.com/)**
* [Re-designing of the website](https://github.com/coala/community/issues/44) and making it responsive.
* [Inactive Issue](https://coala-community.netlify.com/static/inactive-issues.json) and [unassigned issues activity](https://coala-community.netlify.com/static/unassigned-issues.json) web pages shows
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure if we need these functionalities in the website, these were only some temporary requirements iirc. @jayvdb

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ohh, but I think it will be OK if we display them. What I was thinking to display only those issues that have importance medium or above it. It will allow open-source enthusiasts to get familiar with current important issues and a way can be provided to redirect to GitHub that will show all issues(Inactive or unassigned acc. to selection) of all levels.


2. Implementation of listed enhancements in coala [community website](http://community.coala.io/)

a. Create a feedback form
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you want to implement a Django form then it couldn't be done in the community website, as its a static website and we are not storing any data anywhere permanently.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Won't it be good if we are able to store data on coala community website permanently? I guess this is achievable by removing the removal of db.sqlite cli instruction from the bash script.
Although, the data for feedback form can even be stored in coala-webservices database.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

..achievable by removing the removal of db.sqlite cli instruction from the bash script.

No this is a static website, it does not matter if you have db.sqlite file or not the whole data will be updated with the new api data when the app is deployed. And iirc all the apps in the community website are built following the same principle.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Although, the data for feedback form can even be stored in coala-webservices database.

Sounds cool.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it does not matter if you have db.sqlite file or not the whole data will be updated with the new api data when the app is deployed

Yeah, I just checked pull requests and analyzed what's happening in the background. Removing db.sqlite instruction won't make any changes 😢 👍


#### PREPARATION/BONDING

* Detailed research on what **new cron jobs** or **API endpoints** need to be
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Before adding new cron jobs we need to fix the old ones, landing website is down right now, figure out how to fix the same. We might need to have CD in the landing repo.


b. Add information about new endpoints at coala-webserivces homepage.

c. Add [contributor's Geolocation](https://github.com/coala/community/issues/18)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had a pr for this coala/community#81, why it didn't get merged and how do you plan to do this now?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I haven't seen that PR 😢
but What I was planning to achieve is simply creating a cron Job for updating the cluster map that is being created on the basis of the location of our community members (if added in their profile). It will also require an OAuth token(IMO) because of querying thousands of users.
Then Once there is a cluster map on the coala-webservices we can show that on our community website.


d. Add [Organisation Teams](https://github.com/coala/community/issues/12)

e. Add [Mentors](https://github.com/coala/community/issues/11)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure if this a task? How you're going to add mentors and where? And why do we need to have this in a gsoc project?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I planned to create an API Endpoint at coala-webservices that will have a database model to store all the mentors with a data field year. And the data then can be displayed on both the websites (projects as well as community) because it is important for a GSoC participant to know who all will be mentoring this year and about the Admins too of this year.
The contributors can participate as a mentor in GSoC by just one tap Want to mentor this year in GSoC? from there profile which will call a function/method on coala-webservices that will perform validation checks whether the contributor is eligible for mentor position or not. If all checks got validated then the contributor will be added as a mentor.


h. Manage live data of community members

i. Addition of more data fields in **Users** db model
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What type of data fields do we need in the Users model?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently, the user model support only 7 data fields.
The fields that I thought of to add are-

  • Updated_at
  • Statistics
  • Issue labels
  • Total time(Total time, Contributed time or anything else that means to users)
  • IS_GCI_PARTICIPANT( Decide parameters or methods to get to know about information)
  • PRs Merged
  • PRs Opened
  • Number of Issues working on

* adding a tab of **GSoC** in projects website
* New coala-community logo
* Contributors profile page
* Admin/Maintainers dashboard
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What kind of dashboard it would be, how it would be useful and how you plan to implement it?

Copy link
Contributor Author

@KVGarg KVGarg Mar 14, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It won't actually be a dashboard but with more options in the Profile page for coala-maintainers team members that newcomers or developers won't have normally.
They can

  • run any cron Job anytime,
  • participate as Admin in GSoC,
  • add new google forms
  • add/update calendar events etc.

@KVGarg KVGarg changed the title _projects: Add new project to projects list _projects: Add "Enhance Website Architecture" project to projects list Mar 15, 2019
@KVGarg
Copy link
Contributor Author

KVGarg commented Mar 19, 2019

have continuous deployment of the data?

shouldn't release pipeline continuously updates the data whenever a PR is merged to master ?

Copy link
Member

@bkhanale bkhanale left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding GSoD would be a nice addition to the project's website. (as also suggested by @abhishalya)

@KVGarg
Copy link
Contributor Author

KVGarg commented Mar 28, 2019

Does GSoD mean "Global Summary of the Day" or something else? I actually don't know the full form of this 😄

@abhishalya
Copy link
Member

Does GSoD mean "Global Summary of the Day" or something else? I actually don't know the full form of this 😄

Google Season of Docs.

@KVGarg
Copy link
Contributor Author

KVGarg commented Mar 28, 2019

@abhishalya @bkhanale For now I guess adding faqs related GSoD will be ok? As I have gone through their timeline and noticed that we can create display mentors as well as technical writers on websites which will look good and informative. For this new database, models have to be implemented with some appropriate checks for which I'm not having much information.
I will think about this more and will update side by side 👍

@KVGarg KVGarg force-pushed the add-proposal-to-list branch 2 times, most recently from 68669b8 to 98b5700 Compare March 28, 2019 20:49
@TravisBuddy

This comment has been minimized.

@KVGarg KVGarg force-pushed the add-proposal-to-list branch 2 times, most recently from 0192986 to 5576fcd Compare August 23, 2019 15:57
This commit adds new Project Proposal - "Enhance
websites architecture" to current projects list.

Closes coala#691
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

Project Proposal: Enhance & Improve coala community & projects website with new features in webservices
7 participants