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

GSOC 2025: Upgrading Tour from google sheets and local storage to database with authentication #873

Open
AQIB-NAWAB opened this issue Feb 1, 2025 · 2 comments

Comments

@AQIB-NAWAB
Copy link

Project Title

Upgrading JSON Schema Tour Website with a Database


Brief Description

The JSON Schema Tour website (https://github.com/json-schema-org/tour/) is a cool tool. Right now, it uses Google Sheets and local storage to manage data, which works but has limitations. This project is about moving the data to a proper database to make the website faster, more scalable, and easier to maintain. It’s a simple but impactful upgrade that will make the site more reliable and open doors for new features in the future like admin dashboard , generating stats and so on.


Expected Outcomes

  1. Replace Google Sheets and local storage with a database (like PostgreSQL or MongoDB).
  2. Move all existing data to the new database.
  3. Build a backend API to connect the database with the website.
  4. Add authentication and authorization to secure the website and allow role-based access (e.g., admin vs. regular users).
  5. Make sure everything works smoothly and is well-documented.
  6. Admin dashboard

Skills Required

  • Frontend Skills: TypeScript, Next.js, JavaScript.
  • Backend Skills: Node.js, Express, JWT (JSON Web Tokens).
  • Authentication: NextAuth, Firebase, or custom authentication.
  • Databases: MongoDB, SQL, or PostgreSQL.
  • APIs and Git: Familiarity with RESTful APIs and version control.

Mentors

TBD


Expected Difficulty

Easy
This is a straightforward project. It’s mostly about moving data to a database, connecting it to the website, and adding authentication. Perfect for someone who’s comfortable with basic web development.


Expected Time Commitment

175 Hours
It’s a small project, so 175 hours should be enough to get everything done and tested.

@jdesrosiers
Copy link
Member

Something to keep in mind is that JSON Schema is supported entirely by donations and that doesn't amount to much. The tour site is a static site and adding and a backend, database, and auth will mean recurring hosting costs. So, you'll want to include in your proposal the projected hosting costs for making this change so we can decide if it's worth spending our limited resources on this project.

The proposal is pretty vague on the details of what benefits we get out of this investment. For example, what specifically would be included in an admin dashboard that would justify cost of setting up authentication?

@AQIB-NAWAB
Copy link
Author

Thank you for bringing up these important points! . We can keep costs low by using MongoDB Atlas Free Tier for the database and custom JWT authentication (no recurring fees). Hosting can stay free with Vercel/Netlify for the frontend and backend.

The upgrade brings:

Better data management (no more Google Sheets/local storage).

Admin dashboard to manage users, track progress, and update content.

Scalability for future growth.

Estimated costs: $0 (free-tier services). This is a small investment for a faster, more maintainable, and feature-rich site.

With the database in place, we can generate valuable insights and analytics, such as:

  • User Engagement
  • Progress Tracking
  • Trends Over Time

These stats can be displayed in the admin dashboard and used to improve the tour experience and make data-driven decisions.

Why This Matters

Improve Content: Identify weak points in the tour and update them.

Engage Users: Use insights to make the tour more interactive and user-friendly.

Show Impact: Demonstrate the value of the JSON Schema Tour to the community and potential donors.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants