WallpaperMachine
The wallpapers you love. A new home on your Mac.
교통대생이 추천한 충주 맛집 94곳
Translation pending
LifestyleJavaScript · CSSGitHub @yufe9OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
교통여지도: 한국교통대 학생 추천 충주 맛집·카페·주점 지도 (카카오맵)
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗한국교통대 학생들이 추천한 충주 맛집·카페·주점 94곳을 음식 그림으로 고르고, 필요할 때 카카오맵에서 위치를 보는 모바일 웹앱.
index.html + style.css + app.js (+ logic.js 순수 계산, motion.js 애니메이션, glass.js 유리 반사광·굴절)#/, #/p/<가게>, #/map, #/map/<가게>./ 검색, Esc 닫기.data/places.json — 원본 엑셀을 scripts/build_places.py로 한 번 변환(좌표 포함). 앱은 실행 중 카카오 로컬 API를 부르지 않는다.logic.js의 foodType())별 AI 생성 예시 사진이다. 같은 종류 안에서도 foodPhoto()가 이름과 첫 메뉴로 변형 사진(뼈해장국·막창)을 고른다. img/food/<key>.webp(960px) + <key>-480.webp(480px)를 srcset으로 고른다.맛집과 따로 교통대 명소를 지도에 띄운다. 학생이 지도에 핀을 꽂고 사진 1~3장과 글을 보내면 승인 대기가 되고, 운영자가 admin.html에서 승인한 것만 지도에 별 모양 핀으로 뜬다.
supa.js 맨 위(Project URL, publishable 키). 이 두 값은 공개돼도 된다. sb_secret_…·service_role 키는 어떤 파일에도 넣지 않는다.insert into public.banned_words values ('낱말'); 로 늘린다. 학번·이름은 members 표에만 있고 API 로 읽을 수 없다.gyotong-yeojido 프로젝트 → 왼쪽 SQL Editor → New query → supabase/schema.sql 내용을 전부 붙여넣고 Run. 여러 번 다시 실행해도 안전하다.insert into public.admins (email) values ('내이메일@example.com') on conflict do nothing;
https://yufe9.github.io/gyotong-yeojido/https://yufe9.github.io/gyotong-yeojido/admin.html, http://localhost:8080/admin.htmlnode scripts/check_rls.mjs. 모두 "통과"여야 한다. (확인용 제보 1건이 '대기'에 남으니 admin.html에서 거절하면 사진까지 지워진다.)admin.html(예: https://yufe9.github.io/gyotong-yeojido/admin.html)을 연다.권한은 화면이 아니라 서버(RLS)가 지킨다. 익명은 "대기로 추가"와 "승인된 것 읽기"만 할 수 있고, 대기 목록 보기·수정·삭제·운영자 명단 보기는 막혀 있다. 더 강한 봇 막기가 필요하면 Cloudflare Turnstile(무료 사람 확인)을 붙일 수 있다(아직 넣지 않음).
python -m http.server 8080 # http://localhost:8080 (카카오 콘솔에 등록된 주소)
node --test logic.test.mjs # 필터·정렬·경계·음식 종류·검색·명소 제보 검사 테스트
node scripts/check_rls.mjs # Supabase 막힘(RLS) 실제 확인
Gemini로 만든 2048×2048 PNG(약 8MB, 저장소 밖 ..\제미나이_이미지작업\AI사진\)를 줄여 webp 두 크기로 저장한다. 원본 PNG는 커밋하지 않는다.
사진을 추가하려면 스크립트의 PHOTOS에 한 줄 넣는다. 같은 종류 안의 변형 사진(예: 부대찌개)이면 logic.js의 PHOTO_VARIANTS와 app.js의 PHOTO_ALT에도 넣는다.
출처는 실행할 때 img/food/CREDITS.md로 다시 쓰인다.
pip install pillow
python scripts/make_food_images.py ../제미나이_이미지작업/AI사진 # 전체
python scripts/make_food_images.py ../제미나이_이미지작업/AI사진 pasta --board 비교판.jpg
화면 문구나 데이터를 바꾸면 다시 만들고, 빠진 글자가 없는지 확인한다.
pip install fonttools brotli
python scripts/subset_fonts.py # 다시 만들고 검사
python scripts/subset_fonts.py --check # 검사만
python scripts/build_places.py <원유철_데이터.xlsx 경로>
REST API 키는 환경 변수 KAKAO_REST_API_KEY 또는 ~/.config/kakao/.env에서 읽는다. 저장소에는 넣지 않는다.
fonts/Pretendard-LICENSE.txt)img/food/CREDITS.md (CC0·퍼블릭 도메인·CC BY)img/logo.svg, 지금 화면에서는 쓰지 않음)#d3e5ef, 잉크 #0c1a24, 뮤트 #3f5464, 가로등빛 구리색 강조 #9a4c0c). 값은 style.css 맨 위 :root에만 있다