Skip to content

schooloud/schooloud_front-end

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

260 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

스크란샷 2023-10-16 α„‹α…©α„Œα…₯ᆫ 1 38 58

1. κ°œμš”

μŠ€ν΄λΌμš°λ“œ : 슀쿨 + ν΄λΌμš°λ“œ

학ꡐ ν”„λ‘œμ νŠΈ ν™˜κ²½ 제곡용 μ˜€ν”ˆμŠ€νƒ 기반 ν΄λΌμš°λ“œ 인프라 제곡 μ„œλΉ„μŠ€μž…λ‹ˆλ‹€.

2. 주제

ν•™κ΅μ˜ μ œν•œμ μΈ 곡인 IP 에 Reverse Proxyλ₯Ό μ‚¬μš©ν•˜μ—¬ ν΄λΌμš°λ“œ ν™˜κ²½μ„ μ œκ³΅ν•¨μœΌλ‘œμ¨ ꡐ내 ν•™μƒλ“€μ˜ ν΄λΌμš°λ“œ λΉ„μš© 뢀담을 λœμ–΄μ£ΌκΈ° μœ„ν•œ "μŠ€ν΄λΌμš°λ“œ" μ„œλΉ„μŠ€λ₯Ό μ œμ•ˆν•©λ‹ˆλ‹€.

3. ν”„λ‘œμ νŠΈ λͺ©μ  및 λ°°κ²½

λ²”μ‚¬νšŒμ  ν΄λΌμš°λ“œ μ„œλΉ„μŠ€μ˜ ν™•μ‚°κ³Ό μœ λ£Œν™”

졜근 ν΄λΌμš°λ“œ μ„œλΉ„μŠ€μ˜ ν™•μ‚°μœΌλ‘œ λ‹€μ–‘ν•œ μ—°λ ΉλŒ€ μ‚¬λžŒλ“€μ˜ μ‚¬μš©λΏλ§Œ μ•„λ‹ˆλΌ μ—¬λŸ¬ μ‹œμŠ€ν…œμ΄ ν΄λΌμš°λ“œλ‘œ μ „ν™˜λ˜λŠ” λ“± ν΄λΌμš°λ“œ μ‚¬μš©μ΄ μ¦κ°€ν•˜λŠ” μΆ”μ„Έμž…λ‹ˆλ‹€. ν•œ λŒ€ν•™μ€ κ΅¬κΈ€μ˜ ν΄λΌμš°λ“œ 메일을 λ„μž…ν•˜μ—¬ ν™œμš©ν•˜λŠ” 사둀도 μžˆμ—ˆλ‹€. [κ΄€λ ¨ 기사] ν•˜μ§€λ§Œ 100TB의 μš©λŸ‰ μ œν•œ λ“±μ˜ μ •μ±…μœΌλ‘œ μ „ν™˜λ˜λŠ” λ“± μ΅œκ·Όμ—λŠ” 무료 ν΄λΌμš°λ“œ μ„œλΉ„μŠ€λ₯Ό νŠΉνžˆλ‚˜ 찾아보기 νž˜λ“­λ‹ˆλ‹€. 기업체듀과 달리 비ꡐ적 적은 μ»΄ν“¨νŒ… μžμ›κ³Ό μ €μž₯곡간이 ν•„μš”ν•œ 학생듀은 μ΄λŸ¬ν•œ 적은 μ‚¬μš©λŸ‰μž„μ—λ„ 유료 ν΄λΌμš°λ“œ μ„œλΉ„μŠ€μ— λΉ„μš©μ„ μ§€λΆˆν•˜λŠ” 것에 뢀담을 λŠλΌλŠ” 것이 μ‹€μ •μž…λ‹ˆλ‹€.

특히 AWS의 EC2 μ»΄ν“¨νŒ… μžμ›μ„ 프리 ν‹°μ–΄λ‘œ μ œκ³΅λ°›λŠ” 경우, λ§€μ›” 750μ‹œκ°„μ˜ 무료 μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ‚˜ λͺ¨λ“  μΈμŠ€ν„΄μŠ€μ˜ 이용 μ‹œκ°„ λˆ„κ³„λ‘œ κ³„μ‚°λ˜μ–΄ 이λ₯Ό μΈμ§€ν•˜μ§€ λͺ»ν•˜λ©΄ ν•œ 달 λ™μ•ˆ μΆ”κ°€λ‘œ μ‚¬μš©ν•œ 것에 λŒ€ν•œ λΉ„μš©μ„ μžλ™ κ²°μ œλ˜λŠ” λ“± μ—¬λŸ¬ 뢈편 사둀가 μžˆμŠ΅λ‹ˆλ‹€.

λ”°λΌμ„œ ν΄λΌμš°λ“œλ₯Ό ν™œμš©ν•  여건이 μ•ˆ λ˜λŠ” ν•™μƒλ“€μ—κ²Œ 무료둜 μ œκ³΅λ˜λŠ” ν΄λΌμš°λ“œλŠ” μΆ©λΆ„νžˆ ν•„μš”ν•  κ²ƒμœΌλ‘œ 보이며, 학생듀이 μ•ˆμ‹¬ν•  수 있고 κ°€μž₯ 접근성이 쒋은 ν•™κ΅μ˜ μ—¬λΆ„ μžμ›μ„ ν΄λΌμš°λ“œλ‘œ ν™œμš©ν•˜λŠ” 것을 μ œμ•ˆν•©λ‹ˆλ‹€.

λŒ€ν•™ μ—¬λΆ„ μ„œλ²„ ν™˜κ²½μ„ κ°€μ •ν•œ ν΄λΌμš°λ“œ μ„œλΉ„μŠ€ μ œμž‘

μ»΄ν“¨νŒ… μžμ›μ„ 확보해 λ‘” 곡곡기관 쀑 ν•˜λ‚˜μΈ λŒ€ν•™μ€ μ„±λŠ₯ μ €ν•˜, μž₯λΉ„ λ…Έν›„ λ“±μ˜ 문제둜 μ‚¬μš©ν•˜μ§€λŠ” μ•Šμ§€λ§Œ, μ²˜λΆ„μ΄ μ–΄λ €μ›Œ 항상 남겨두고 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” μ»΄ν“¨νŒ… μžμ›μ΄ μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, μ†Œκ·œλͺ¨ 동아리 λ“±μ—μ„œ μ œν•œλœ 인프라 μžμ›μ„ κ°–λŠ” κ²½μš°λ„ μžˆμ„ κ²ƒμž…λ‹ˆλ‹€. λ”°λΌμ„œ 이것을 μ‚¬μš©μžμ—κ²Œ μ œκ³΅ν•  수 μžˆλŠ” ν΄λΌμš°λ“œ μΈν”„λΌλ‘œ ν™œμš©ν•˜λŠ” λ°©μ•ˆμ„ μ œμ•ˆν•©λ‹ˆλ‹€.

ν•˜μ§€λ§Œ λŒ€ν•™μ΄ λ§Œμ•½ 곡인 아이피 개수λ₯Ό 1~2만 κ°€μ§€κ³  μžˆλ‹€κ³  κ°€μ •ν•œλ‹€λ©΄ ν•œμ •λœ 아이피 λ‚΄μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈλ“€μ˜ μ—¬λŸ¬ μΈμŠ€ν„΄μŠ€μ— λŒ€ν•œ 접근이 μ„œλ‘œ λ‹€λ₯Έ 아이피λ₯Ό 톡해 이루어지도둝 ν•˜λŠ” 것은 λΆˆκ°€λŠ₯ν•©λ‹ˆλ‹€. λ”°λΌμ„œ μ €ν¬λŠ” ssh λ˜λŠ” μ›ΉμœΌλ‘œ μΈμŠ€ν„΄μŠ€μ— μ ‘κ·Όν•  μ‚¬μš©μžλ“€μ΄ 각 ν”„λ‘μ‹œ μ„œλ²„λ‘œ μ ‘κ·Όν–ˆμ„ λ•Œ μ—°κ²°λ˜λŠ” μΈμŠ€ν„΄μŠ€κ°€ μ„œλ‘œ λ‹€λ₯Έ 포트둜 μ—°κ²°λ˜λ„λ‘ 운영체제인 Linux의 λ„€νŠΈμ›Œν‚Ήμ„ κ΅¬ν˜„ν•˜μ—¬ μ œν•œλœ 아이피 κ°œμˆ˜μ—λ„ μ—¬λŸ¬ μΈμŠ€ν„΄μŠ€λ₯Ό μ œκ³΅ν•˜κ³ μž ν•©λ‹ˆλ‹€.

λ˜ν•œ μ œν•œλœ μžμ›μ„ λ§Žμ€ 수의 학생이 κ³΅μœ ν•΄μ•Ό ν•˜λ―€λ‘œ ν•™μƒλ“€λ§ˆλ‹€ 생성 κ°€λŠ₯ν•œ μΈμŠ€ν„΄μŠ€μ˜ 개수λ₯Ό μ œν•œν•΄μ•Ό ν•©λ‹ˆλ‹€. 학생인 ν΄λΌμ΄μ–ΈνŠΈκ°€ 웹을 톡해 μžμ›ν• λ‹Ήμ„ μš”μ²­ν•˜λ©΄ ꡐ수, κ΄€λ¦¬μžκ°€ 이λ₯Ό μŠΉμΈν•˜κ³  학생듀은 이λ₯Ό μ΄μš©ν•˜λŠ” μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜κ³ μž ν•©λ‹ˆλ‹€.

4. κΈ°λŠ₯

schooloud μ„œλΉ„μŠ€ μ‚¬μš©μžλŠ” 크게 3κ°€μ§€ μ—­ν• λ‘œ λΆ„λ₯˜λ©λ‹ˆλ‹€. 학생이 ν”„λ‘œμ νŠΈμ˜ μ œμ•ˆμ„œλ₯Ό μž‘μ„±ν•˜κ³ , ꡐ수 ν˜Ήμ€ κ΄€λ¦¬μžκ°€ ν•΄λ‹Ή μ œμ•ˆμ„œλ₯Ό μŠΉμΈν•˜λ©΄, 학생은 ν”„λ‘œμ νŠΈ λ‚΄μ—μ„œ μΈμŠ€ν„΄μŠ€λ₯Ό λ§Œλ“€κ³  ssh 접속, 도메인 ν• λ‹Ή, μΏΌν„° 관리, 멀버 관리 등을 ν•  수 있고, κ΄€λ¦¬μžλŠ” 전체적인 μš”μ†Œλ₯Ό κ΄€λ¦¬ν•˜κ³  감독할 수 μžˆμŠ΅λ‹ˆλ‹€.

  • 학생 : ν”„λ‘œμ νŠΈ μ œμ•ˆμ„œ μž‘μ„± 및 쑰회, μΈμŠ€ν„΄μŠ€ 생성 / 쀑지 / μ‚­μ œ / 쑰회 / 도메인 ν• λ‹Ή / ssh 접속 / ν”„λ‘œμ νŠΈ 멀버 μΆ”κ°€, μΏΌν„° λ³€κ²½ μš”μ²­
  • ꡐ수 : μ œμ•ˆμ„œ 승인 / 반렀 / 쑰회
  • κ΄€λ¦¬μž : μ œμ•ˆμ„œ 승인 / 반렀 / 쑰회, μΏΌν„° λ³€κ²½ μš”μ²­ 승인 / 반렀 / 쑰회, ν”„λ‘œμ νŠΈ μ‚­μ œ / 관리, ν”„λ‘μ‹œ 관리, μœ μ € 관리, 전체 μ‚¬μš©λŸ‰ 관리

[학생]

νšŒμ›κ°€μž…/둜그인

학생은 νšŒμ›κ°€μž…μ„ 톡해 μ„œλΉ„μŠ€λ₯Ό μ΄μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. νšŒμ›κ°€μž… 및 λ‘œκ·ΈμΈμ€ schooloud ν™ˆνŽ˜μ΄μ§€μ—μ„œ κ°€λŠ₯ν•©λ‹ˆλ‹€.

ν”„λ‘œμ νŠΈ μ œμ•ˆμ„œ

쒌츑 λ°”μ˜ write proposal λ²„νŠΌμ„ 톡해 ν”„λ‘œμ νŠΈ μ œμ•ˆμ„œλ₯Ό μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν”„λ‘œμ νŠΈ 이름, λͺ©μ , ν”„λ‘œμ νŠΈ μš©λŸ‰, κΈ°κ°„ 등을 μž…λ ₯ν•©λ‹ˆλ‹€.

writeProposal

쒌츑 λ°”μ˜ Proposal λ²„νŠΌμ„ λˆŒλ €μ„ λ•Œ Waiting Listλ₯Ό 톡해 아직 검토쀑인 μ œμ•ˆμ„œ λͺ©λ‘μ„ 확인할 수 있고, Processed Listλ₯Ό 톡해 승인 / 반렀된 μ œμ•ˆμ„œ λͺ©λ‘μ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. μ œμ•ˆμ„œκ°€ κ²€ν† λ˜κΈ° 전에 μ‚­μ œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λŒ€μ‹œλ³΄λ“œ

ꡐ수 λ˜λŠ” κ΄€λ¦¬μžκ°€ μ œμ•ˆμ„œλ₯Ό μŠΉμΈν•˜λ©΄ 학생은 ν”„λ‘œμ νŠΈλ₯Ό μ΄μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€λ₯Έ 학생(μ‚¬μš©μž)λ₯Ό μ΄ˆλŒ€ν•  수 있고, ν”„λ‘œμ νŠΈμ˜ μΏΌν„°λ₯Ό κ°λ…ν•˜κ³  λ³€κ²½ μš”μ²­μ„ 보내고 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

image

μΈμŠ€ν„΄μŠ€

μΈμŠ€ν„΄μŠ€ 생성, 쀑지, μž¬μ‹œμž‘, μ‚­μ œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

createInstance

λ§Œλ“€μ–΄μ§„ μΈμŠ€ν„΄μŠ€λŠ” κΈ°λ³Έ 정보λ₯Ό μ‘°νšŒν•˜κ³  도메인 ν• λ‹Ή ν›„ 도메인 접속 및 ssh 접속이 κ°€λŠ₯ν•©λ‹ˆλ‹€.

instanceDomain domainSsh sshEntrance

ν‚€νŽ˜μ–΄

μΈμŠ€ν„΄μŠ€ 생성 μ‹œ ν•„μš”ν•œ ν‚€νŽ˜μ–΄λ₯Ό 생성 및 μ‚­μ œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

[ꡐ수]

사전에 λ“±λ‘λœ μ‚¬μš©μžλ§Œ ꡐ수 νŽ˜μ΄μ§€λ₯Ό μ΄μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν”„λ‘œμ νŠΈ μ œμ•ˆμ„œ 승인 / 반렀

학생이 μ œμΆœν•œ μ œμ•ˆμ„œλ₯Ό ν΄λ¦­ν•˜μ—¬ 승인 λ˜λŠ” λ°˜λ €ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ΅μˆ˜κ°€ ν”„λ‘œμ νŠΈ μ œμ•ˆμ„œλ₯Ό μŠΉμΈν•˜κ²Œ 된 μˆœκ°„λΆ€ν„° 학생은 ν”„λ‘œμ νŠΈλ₯Ό μ‚¬μš©ν•  수 있고, λŒ€μ‹œλ³΄λ“œλ₯Ό μ‚¬μš© κ°€λŠ₯ν•©λ‹ˆλ‹€.

proposalWaitingList

[κ΄€λ¦¬μž]

사전에 λ“±λ‘λœ μ‚¬μš©μžλ§Œ κ΄€λ¦¬μž νŽ˜μ΄μ§€λ₯Ό μ΄μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λŒ€μ‹œλ³΄λ“œ

λͺ¨λ“  ν”„λ‘œμ νŠΈμ˜ 전체 μš©λŸ‰κ³Ό μ‚¬μš©λŸ‰μ„ 확인할 수 있고, κ°„λž΅ν•œ ν”„λ‘œμ νŠΈ μ œμ•ˆμ„œ μš”μ²­κ³Ό μΏΌν„° λ³€κ²½ μš”μ²­ 리슀트λ₯Ό λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

adminDashboard

μΏΌν„°

λŒ€κΈ° 쀑인 μΏΌν„° λ³€κ²½ μš”μ²­μ„ 승인 / λ°˜λ €ν•  수 있고, 처리된 μΏΌν„° λ³€κ²½ μš”μ²­ 리슀트λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

μ œμ•ˆμ„œ

λŒ€κΈ° 쀑인 ν”„λ‘œμ νŠΈ μ œμ•ˆμ„œλ₯Ό 승인 / λ°˜λ €ν•  수 있고, 처리된 ν”„λ‘œμ νŠΈ μ œμ•ˆμ„œλ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

ν”„λ‘œμ νŠΈ

각 ν”„λ‘œμ νŠΈμ˜ μ‚¬μš©λŸ‰, 생성 λ‚ μ§œ, 멀버 λͺ©λ‘ 등을 확인할 수 있고 ν”„λ‘œμ νŠΈλ₯Ό μ‚­μ œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

adminProject

ν”„λ‘μ‹œ

SSH Listμ—μ„œ μƒμ„±λœ μΈμŠ€ν„΄μŠ€ λͺ©λ‘κ³Ό ν”„λ‘μ‹œ μ„œλ²„μ— μ„€μ •λœ 포트λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, Domain Listμ—μ„œ ν˜„μž¬ μΈμŠ€ν„΄μŠ€μ— ν• λ‹Ήλœ 도메인 ν˜„ν™©μ„ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

adminProxy

μ‚¬μš©μž

학생 λͺ©λ‘κ³Ό ꡐ수 λͺ©λ‘μ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

5.μ‹œμŠ€ν…œ 아킀텍쳐

image

image\

6. LICENSE

package.json

"dependencies": {
    "@mui/icons-material": "^5.11.16",
    "@tanstack/react-query": "^4.29.7",
    "@testing-library/jest-dom": "^5.16.5",
    "@testing-library/react": "^13.4.0",
    "@testing-library/user-event": "^13.5.0",
    "axios": "^1.4.0",
    "react": "^18.2.0",
    "react-calendar": "^4.2.1",
    "react-dom": "^18.2.0",
    "react-loader-spinner": "^5.3.4",
    "react-router-dom": "^6.10.0",
    "react-scripts": "5.0.1",
    "recharts": "^2.5.0",
    "styled-components": "^5.3.9",
    "universal-cookie": "^4.0.4",
    "web-vitals": "^2.1.4"
  }

이 ν”„λ‘œμ νŠΈμ—μ„œ μ‚¬μš©λœ μ†Œν”„νŠΈμ›¨μ–΄λŠ” MIT λΌμ΄μ„ μŠ€λ₯Ό μ°Έμ‘°ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λΌμ΄μ„ μŠ€μ˜ 전문은 ν•΄λ‹Ή νŒ¨ν‚€μ§€μ˜ κ³΅μ‹λ¬Έμ„œ ν˜Ήμ€ githubμ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

About

schooloud_front-end

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages