-
Notifications
You must be signed in to change notification settings - Fork 223
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
Conversation
This comment has been minimized.
This comment has been minimized.
68fdcce
to
8c9b293
Compare
This comment has been minimized.
This comment has been minimized.
8c9b293
to
ccc3950
Compare
This comment has been minimized.
This comment has been minimized.
ccc3950
to
0fa7707
Compare
This comment has been minimized.
This comment has been minimized.
0fa7707
to
89dc9ef
Compare
This comment has been minimized.
This comment has been minimized.
89dc9ef
to
c2cd51b
Compare
This comment has been minimized.
This comment has been minimized.
c2cd51b
to
7345fbb
Compare
This comment has been minimized.
This comment has been minimized.
7345fbb
to
1020cf5
Compare
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this 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 |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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 ?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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 🙂
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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 -
- Promotion to developer status
- Getting assigned to an issue
- Participate as mentor
- Extension to non-availability period during GSoC
- 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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- 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.
There was a problem hiding this comment.
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.
_projects/enhance-and-improve-coala-community-and-projects-website.md
Outdated
Show resolved
Hide resolved
_projects/enhance-and-improve-coala-community-and-projects-website.md
Outdated
Show resolved
Hide resolved
|
||
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 |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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) |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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) |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
shouldn't |
There was a problem hiding this 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)
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. |
@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. |
68669b8
to
98b5700
Compare
This comment has been minimized.
This comment has been minimized.
0192986
to
5576fcd
Compare
This commit adds new Project Proposal - "Enhance websites architecture" to current projects list. Closes coala#691
5576fcd
to
f287fab
Compare
This commit adds new Project Proposal - "Enhance
websites architecture" to current projects list.
Closes #691