Authentication System

Phase: Ended

Registration Deadline: June 30, 2024

Submission Deadline: July 7, 2024

Prizes

4000 EGP

1 Place

1000 EGP

2 Place

500 EGP

3 Place

Brief

Code-quests is a platform that helps businesses publish projects (called Quests) and ask a community of developers and designers to compete to build the best, highest-quality implementation or design.

In this quest, the goal is to build the authentication system for the Code Quest platform 


Requirements

You will be invited to access our backend code, built using TypeScript, Node.js LTS, and Feathers.js, and our frontend code, built using React js, you will add your changes to this project 

If you win the first prize, you agree to join a publishing session (4-8 hrs) where we deploy the code to our production environment and fix any critical bugs that appear during deployment.

Authentication Provider: Auth0 https://auth0.com/developers

  • Integrate Auth0 to manage user authentication.

  • Implement both sign-in and sign-up flows.

  • Ensure proper handling of authentication tokens and session management

  • Implement role-based access control (RBAC) to manage different user roles.

CodeQuest Backend: how to enable auth0 at feathers https://feathersjs.com/cookbook/authentication/auth0

  • Integrate Auth0 with your existing codequest backend.

  • Integrate with authentication APIs for user registration, login, and profile management using Auth0. 

  • Ensure secure communication between the client and server using Auth0 tokens.

CodeQuest Frontend : Auth0 SDK for react  https://github.com/auth0/auth0-react?tab=readme-ov-file

  • Integrate Auth0 into your existing Codequest frontend application.

  • Embed Auth0 ui or redirect to auth0 then come back

  • Handle authentication states and display appropriate UI elements based on user status (e.g., logged in, logged out).

  • Retrieve quests based on the user that already logged-in 


High-Level Architecture Diagram

Acceptance Criteria

Please read the Backend Scorecard to see how the winners will be selected, and how we evaluate the best code submission.

  • Minimum acceptable score is 90 (90% of 100). First, Second, Third place will be the highest score above 90.

  • If two submissions earn the same score, the first submission will get the highest place.

Making the world a better place through competitive crowdsourcing programming.