creativecommons / cc-resource-archive

Collection of resources on Creative Commons (CC) tools and other open topics
https://resources.creativecommons.org/
MIT License
54 stars 115 forks source link

[Feature] Request to improve the 'Submit a resource' using Fireabse Database #129

Open Pursottam6003 opened 1 year ago

Pursottam6003 commented 1 year ago

Problem

Problem following the #113 issue but I would like to add more details. When i navigated towards the route /submit in my computer the form it's not rendering the google form and other details.

So here my approach is to create a new form and use Google Firebase as a backend service and use its features.

image

Description

Since there was already has the option to submit a resource via google form but since Creative Commons has already used Jeykll my approach is to create a form but use google firebase as a backend data the user needs to sign via google/ Microsoft or Facebook account in before submitting the form.

Reasons to use

  1. Firebase Database: It allows real-time database connection, which means multiple users can see the changes in the data when the data gets created or edited.

  2. Data transmission is handled with web sockets so you don't have to send requests to get new data, you only need to subscribe once.

  3. Data is secure and reliable in future implementation Creative Commons may use Google Cloud and use other features

  4. Who wants to submit resources to creative commons directly via firebase and be able to fetch and display them on the webpage we know all visitors may always have a google account/ Microsoft account so it is accessible and efficient

Example design: for sign-in using firebase auth

Screenshot from 2023-03-29 20-17-57

Submit Resource Example Design

Screenshot from 2023-03-29 19-36-36

The user can add their thoughts supported by links and descriptions so i think it would really help in better development of this project

Hello Sir @possumbilities what about your opinions if yes please allow me to move forward I would be very happy to work on it

Alternatives

We could also convert the whole website into NodeJs and ReactJs and use MongoDB / Firebase and style using the MUi which improves the codebase readability and its User Experience can be improved

Additional context

Implementation

adidevs commented 1 year ago

Hey @Pursottam6003 ,this is a great approach for implementing the resource submission on the website. I believe the implementation of this. Here are some points you might consider or might have already considered in the implementation:

  1. The API Keys and Google account to be used have to be provided and hosted internally by Creative Commons for data safety and management. The maintainers need to work on this and reach consensus about the usage of the tech stack.

  2. One of the project outcomes for this project from the GSoC 2023 ideas page is that the " Entire site builds as static files on GH pages." and one of the contributor tasks is that "Ensure the site functions as a static and stable Jekyll site hosted on GH Pages as static files." This is the approach to be followed for building the website unless again the maintainers delve into other methods of implementation

Once again, this is a good idea for form submission and can be a good discussion here. Looking forward to inputs by the maintainers.

Xaid-vfx commented 1 year ago

Hey @Pursottam6003, about converting the whole website to Node and React, React is a powerful framework and our project doesn't need all those powers. Also, it would require unnecessary amount of work for shifting the project to React. For time being, Jekyll is sufficient enough to achieve to deliverables expected out of this project.

Also, about Submission form, I would like to add that the form might require more fields of input such as Author,languages etc. Having a look at Resource template might be helpful.

If you plan to store resources in Firebase, that's a nice idea. Although, I don't see any point for a user to Sign In using google while submitting a resource.

Pursottam6003 commented 1 year ago

Hey @Pursottam6003, about converting the whole website to Node and React, React is a powerful framework and our project doesn't need all those powers. Also, it would require unnecessary amount of work for shifting the project to React. For time being, Jekyll is sufficient enough to achieve to deliverables expected out of this project.

Also, about Submission form, I would like to add that the form might require more fields of input such as Author,languages etc. Having a look at Resource template might be helpful.

If you plan to store resources in Firebase, that's a nice idea. Although, I don't see any point for a user to Sign In using google while submitting a resource.

Hii @Xaid-vfx thank you for your suggestions actually the form i have chosen is just a demo form and thank you for providing the resource templet definitely i will look into it and regarding the conversion i had just said its an alternative approach that someone can follow since we already using Jeyll so we can use Firebase Database as our backend service

Also regarding the google sign it is just a pop-up sign-in so that we would also have an account on whether the user is authenticated or not and does he/she is submitting duplicate data, if the user wants to check their previous submission, change the password,verify the email address, and JWT authentication everything is possible if we use Firebase authentication

Hope you get it you can check here

Pursottam6003 commented 1 year ago

Hey @Pursottam6003 ,this is a great approach for implementing the resource submission on the website. I believe the implementation of this. Here are some points you might consider or might have already considered in the implementation:

  1. The API Keys and Google account to be used have to be provided and hosted internally by Creative Commons for data safety and management. The maintainers need to work on this and reach consensus about the usage of the tech stack.
  2. One of the project outcomes for this project from the GSoC 2023 ideas page is that the " Entire site builds as static files on GH pages." and one of the contributor tasks is that "Ensure the site functions as a static and stable Jekyll site hosted on GH Pages as static files." This is the approach to be followed for building the website unless again the maintainers delve into other methods of implementation

Once again, this is a good idea for form submission and can be a good discussion here. Looking forward to inputs from the maintainers.

Thank you @adidevs I will definitely look into it

possumbilities commented 1 year ago

I'm not sure of the need for adding this level of complexity to the project. I'm more inline with what @adidevs has said.

I'm converting this to a discussion instead for now., and others can add their thoughts here on routes related to this.

JennySimen commented 1 year ago

I think leveraging the power of cloud services is good. Also, I do not think there will be a need to convert the whole website to another tech stack entirely. It will be much better to keep it simple to avoid complexity.

Shivangbhatnagar237 commented 1 year ago

I agree, it will help to let the site remain static and hosted by GH pages

Shivangbhatnagar237 commented 1 year ago

However, we can use ajax requests to fetch data on the front-end, keeping Firebase as database which would also solve the problem, keeping the site static and also adding functionality.

Cappybara12 commented 4 months ago

Hey all,

Great discussion so far! Just dropping in with a couple of points:

  1. Firebase Consideration: While Firebase offers real-time database capabilities, let's also consider potential data migration efforts and compatibility with existing infrastructure.
  2. User Experience: Simplifying the submission process could encourage more contributions. Perhaps explore options for anonymous submissions alongside authenticated ones.

Excited to see how this evolves!