code-design icon indicating copy to clipboard operation
code-design copied to clipboard

[Feature] Submission & XP System

Open nauvalazhar opened this issue 3 years ago • 11 comments

Let's have the submission page and the XP system to make the challenge more engaging.

Submission is a page that would allow the dev to upload their challenge's solution. Each submission contains at least a description, demo URL, and tech stack information.

All the submissions would go through the approval system, and after the submission is approved, the dev would earn some XPs.

I still don't have any idea about the tech that we can use, but I think the GitHub repository's issues API would be the easier way to implement. But, we still need to find a way to store the user's XP data.

I don't want to build an entire back-end infrastructure only for this feature to be implemented.

Some other advanced options:

  • https://planetscale.com
  • https://strapi.io

Let's have a discussion.

nauvalazhar avatar Feb 01 '23 16:02 nauvalazhar

I think if want to make an XP system, we need to build the our own back-end application 😅 Because I can't find any platform who can make that system.

With custom back-end app, maybe we can also make people can submit the design asset through the website.

hendraaagil avatar Feb 02 '23 03:02 hendraaagil

I see, my concern is about the deployment, what option for the deployment, then? I think we can do a full-stack Next JS with the Planetscale database, they have got pretty good a free plan.

nauvalazhar avatar Feb 02 '23 07:02 nauvalazhar

I think full-stack NextJS with Planetscale database is a good idea.

hendraaagil avatar Feb 02 '23 09:02 hendraaagil

does it also mean to have badges system?

akrindev avatar Feb 12 '23 16:02 akrindev

does it also mean to have badges system?

Yeah, it is on my todo-list. But, for now, let's have the submission page first, so the dev could publish the solutions and share them with the world!

nauvalazhar avatar Feb 12 '23 16:02 nauvalazhar

sounds good✨ then, do u think we need authentication system? wbu to use github provider? the user then have their submission profile, xp and badges histories.

here is how I figured out codedesign flow (1)

I'm so excited to collaborate 🥳

akrindev avatar Feb 13 '23 11:02 akrindev

Whoa, such a nice diagram!

Yes, we can use GitHub provider, but we still need to find a way to persist the user login information on the client. I've tried to implement the session-based auth system, but the problem is we use Next JS 13 appDir feature, so the session API is still read-only. But we can use JWT as an alternative, or maybe you have another option.

nauvalazhar avatar Feb 13 '23 11:02 nauvalazhar

Whoa, such a nice diagram!

Yes, we can use GitHub provider, but we still need to find a way to persist the user login information on the client. I've tried to implement the session-based auth system, but the problem is we use Next JS 13 appDir feature, so the session API is still read-only. But we can use JWT as an alternative, or maybe you have another option.

its a great idea to use JWT, I've been using next-auth to handle authentication system with appDir. I'll go first with PR login system.

akrindev avatar Feb 14 '23 01:02 akrindev

Whoa, such a nice diagram! Yes, we can use GitHub provider, but we still need to find a way to persist the user login information on the client. I've tried to implement the session-based auth system, but the problem is we use Next JS 13 appDir feature, so the session API is still read-only. But we can use JWT as an alternative, or maybe you have another option.

its a great idea to use JWT, I've been using next-auth to handle authentication system with appDir. I'll go first with PR login system.

Oh, sounds good!

nauvalazhar avatar Feb 14 '23 15:02 nauvalazhar

Hi, new here, Sorry just barged in out of nowhere 😅. I suggest using trpc for custom backend and we can easily integrate it with next auth also, like t3-stack

I think if want to make an XP system, we need to build the our own back-end application 😅 Because I can't find any platform who can make that system.

With custom back-end app, maybe we can also make people can submit the design asset through the website.

rndy28 avatar Apr 12 '23 06:04 rndy28

I think if want to make an XP system, we need to build the our own back-end application 😅 Because I can't find any platform who can make that system.

With custom back-end app, maybe we can also make people can submit the design asset through the website.

Alternatively, we can use https://strapi.io/

For the point system as plugin: https://strapi.io/blog/how-to-build-a-strapi-custom-plugin

fzn0x avatar Apr 12 '23 08:04 fzn0x