Advance | Topcoder Skill Builder Competition | Java + PostgreSQL | Secret Train Secret Train

Key Information

The challenge is finished.

Challenge Overview

Read Our Blog:

The challenge prizes are:

  • Tshirt for everyone: every successful submitter on any Skill Builder Competition gets a Topcoder t-shirt. Note: if you have previously competed in the Topcoder Skill Builder Competition : Java + Springboot + PostgreSQL (, in order to win a t-shirt, you should improve your score and you should get a score over 75% of total score, meaning to get over 225 of 300 points.
  • First Time Submitter: 50 First time submitters on any of the Skill Builder Competition get $50 as a bonus
  • Gig Workers Bonus: Gig Worker who have never competed in a Topcoder Challenge, get $50 as a bonus above the mentioned prizes
  • AlefEdge Skill Builder Bonus: If you successfully submit in any Topcoder Skill Builder Competition plus participate succesfully in the AlefEdge Skill BuilderBuilder Competition, the first 50 members will earn an additional $100 bonus.
  • Multiple Skill Builder Submissions: The more you participate, the more you earn. There are 9 Skill Builder Competitions and we’ll double your September bonus prizes if you successfully submit to all of them.

This is the Advance Level Competition

Steve’s station receives an annual award from the government because of the train's quality management between all stations across the country.

Because of the award, the government added more trains to be maintained by Steve’s stations. With the addition of new trains, supervisors give extra protection for employees to enter stations for workdays.

Solving this problem you learn:

  • Create Pagination and sort for the required endpoints
  • Support multiple Sort for the endpoints
  • Create initial data for the user table
  • Add User Authentication for endpoints

What do you need to do?



1. Fix data init on db/sql

2. Pagination

3. Authentication

  • These are the learning material links that will help for this task:
  • For this task, we need to
    • Create initial SQL data for authentication similar like we did in the previous task
    • Use 1 user data with admin role:
      • id: 1
      • email:
      • password: password123
      • username: admin
      • roles: ADMIN
    • Create new endpoint for User Authentication : /auth/signin
    • Users need to use a username & password for the parameters
    • Fix all existing endpoints to support request data with JWT on Authentication Header
  • Response:
    • Success:
      • Need to return 200 code, and
      • List the related data for any endpoints
    • Error:
      • When authorization is not correct:
        • Need return 403 code, and
        • Message “Forbidden”


2022 Topcoder(R) Open


Final Review:

Community Review Board


User Sign-Off


ID: 30203696