[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fRXOtHeuIyJNo3nL6H-fk4F9JDuhsfGk9qjJ3qMoEfvA":3,"$fDL6GPq9fUa3jdi4KmKR42ntLAeQicp6fVZhpos0GyE0":6,"$f63-dULBmMWiUGItStXSKbWggJqD9idneEcQYV74ElmU":40},{"success":4,"data":5},true,{},{"success":4,"data":7},{"id":8,"title":9,"description":10,"long_description":11,"image":12,"image_url":13,"technologies":14,"category":21,"github_url":22,"demo_url":23,"featured":4,"status":24,"created_at":25,"updated_at":26,"problem":27,"approach":28,"trouble":29,"result_metric":30,"result_label":31,"role":32,"year":22,"tier":33,"link_status":34,"title_ko":22,"description_ko":35,"problem_ko":36,"approach_ko":37,"trouble_ko":38,"result_label_ko":39},"fbb6414f-654e-4556-99aa-f5a4ddb4c62b","Hannim","Korean + TOPIK II coaching web app with reader, exam, tutor, listening, voice and OCR.","Two-profile Korean learning platform: graded reader, TOPIK II mock exams, AI tutor, listening drills, conjugation trainer, mistakes bank and tap-to-define. RAG-grounded feedback over pgvector.","https:\u002F\u002Fatpyngridfrvfrbwkyyu.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fproject-images\u002Fhannim.jpeg","https:\u002F\u002Fkalandarov.uz\u002Fmedia\u002Fwork\u002Fhannim.jpg",[15,16,17,18,19,20],"Nuxt","pgvector","OpenRouter","Groq","Cohere","PostgreSQL","AI",null,"https:\u002F\u002Fwww.hannim.app","Live","2026-07-19T10:55:07.805217+00:00","2026-07-19T15:56:31.896+00:00","TOPIK II learners get either a graded reader or an AI tutor, never both grounded in the same corpus, so feedback contradicts the material.","Forty API routes over a single pgvector store — reader, mock exams, tutor, listening drills, conjugation practice and a mistakes bank all retrieve against the same embedded corpus.","Embedding the corpus hit Cohere's 100k tokens\u002Fminute throttle mid-ingest and failed partway, leaving the store inconsistent. Batching the work off-peak and making ingest resumable fixed both the throttle and the partial-state problem.","40","LLM routes over one pgvector corpus","Solo build","case","live","TOPIK II 학습자를 위한 한국어 학습 플랫폼. 읽기 자료, 모의고사, AI 튜터, 듣기 훈련을 하나의 코퍼스 위에서 제공합니다.","TOPIK II 학습자는 난이도별 읽기 자료 아니면 AI 튜터 중 하나만 쓰게 되고, 둘이 같은 코퍼스에 기반하지 않다 보니 피드백이 학습 자료와 어긋납니다.","하나의 pgvector 저장소 위에 40개의 API 라우트를 올렸습니다. 읽기, 모의고사, 튜터, 듣기, 활용 연습, 오답 노트가 모두 동일한 임베딩 코퍼스를 참조합니다.","코퍼스 임베딩 도중 Cohere의 분당 10만 토큰 제한에 걸려 작업이 중간에 실패했고, 저장소가 불완전한 상태로 남았습니다. 작업을 비피크 시간대로 배치하고 재개 가능하도록 만들면서 처리량 제한과 부분 상태 문제를 함께 해결했습니다.","하나의 pgvector 코퍼스 위의 LLM 라우트",{"data":41},[42,45,49,52,53,56,59,62,65,68,72,75,78,81,84,87,90,93,96,99,102,105,108,111,114,117],{"title":43,"title_ko":22,"featured":4,"created_at":44},"scenefile","2026-10-14T08:25:03.956596+00:00",{"title":46,"title_ko":47,"featured":4,"created_at":48},"MoykaGo","","2026-09-10T08:30:04.940981+00:00",{"title":50,"title_ko":22,"featured":4,"created_at":51},"JobHunterKR","2026-07-20T09:00:00+00:00",{"title":9,"title_ko":22,"featured":4,"created_at":25},{"title":54,"title_ko":47,"featured":4,"created_at":55},"Law4Kor","2026-07-18T10:55:07.805217+00:00",{"title":57,"title_ko":22,"featured":4,"created_at":58},"TraWell","2026-07-17T10:55:07.805217+00:00",{"title":60,"title_ko":22,"featured":4,"created_at":61},"GroupWrapped","2026-07-16T10:55:07.805217+00:00",{"title":63,"title_ko":22,"featured":4,"created_at":64},"FootHost","2026-07-16T08:17:25.770148+00:00",{"title":66,"title_ko":22,"featured":4,"created_at":67},"Sening Toy","2026-07-16T06:17:25.770148+00:00",{"title":69,"title_ko":22,"featured":70,"created_at":71},"Stadium Map",false,"2026-07-16T04:17:25.770148+00:00",{"title":73,"title_ko":22,"featured":70,"created_at":74},"UniBridge","2026-07-16T02:23:30.769478+00:00",{"title":76,"title_ko":22,"featured":70,"created_at":77},"Toto Planner","2026-07-16T00:23:30.769478+00:00",{"title":79,"title_ko":22,"featured":70,"created_at":80},"Mekan Games","2026-07-15T22:43:35.782538+00:00",{"title":82,"title_ko":22,"featured":70,"created_at":83},"ManageBirthday","2026-07-15T20:43:35.782538+00:00",{"title":85,"title_ko":22,"featured":4,"created_at":86},"Boardroom","2026-07-15T10:55:07.805217+00:00",{"title":88,"title_ko":22,"featured":70,"created_at":89},"Token Saver","2026-07-14T10:55:07.805217+00:00",{"title":91,"title_ko":22,"featured":70,"created_at":92},"GeoLeads","2026-07-13T10:55:07.805217+00:00",{"title":94,"title_ko":22,"featured":70,"created_at":95},"Rival Radar","2026-07-12T10:55:07.805217+00:00",{"title":97,"title_ko":22,"featured":70,"created_at":98},"Shorts Maker","2026-07-11T10:55:07.805217+00:00",{"title":100,"title_ko":22,"featured":70,"created_at":101},"ChessCoach","2026-07-10T10:55:07.805217+00:00",{"title":103,"title_ko":22,"featured":70,"created_at":104},"ScanDina","2026-07-09T10:55:07.805217+00:00",{"title":106,"title_ko":22,"featured":70,"created_at":107},"VoiceDesk","2026-07-08T10:55:07.805217+00:00",{"title":109,"title_ko":22,"featured":70,"created_at":110},"UniDesk","2026-07-07T10:55:07.805217+00:00",{"title":112,"title_ko":22,"featured":70,"created_at":113},"Hakgil","2026-07-06T10:55:07.805217+00:00",{"title":115,"title_ko":22,"featured":70,"created_at":116},"BIGPIT","2026-07-05T10:55:07.805217+00:00",{"title":118,"title_ko":22,"featured":70,"created_at":119},"Pose Coach","2026-07-04T10:55:07.805217+00:00"]