/dongari_time

피로그래밍 21기 프로젝트

Primary LanguageCSS

📰 동아리타임

🏆 피로그래밍 21기 최종 프로젝트 작품

📜 Contents

  1. 프로젝트 소개
  2. 서비스 화면
  3. 주요 기능
  4. 개발 환경
  5. 시스템 아키텍처
  6. 기획 및 설계 산출물
  7. 팀원 소개

✨ 프로젝트 소개

동아리 부원들이 효과적이고 쉽게 소통하고 교류할 수 있는 웹서비스

💡 동아리, 학생회, 연구실… 점점 늘어나는 단톡방의 바다에서 헤매고 계신가요? 선후배님과 관계를 만들고 싶어 인스타그램을 돌아다니시나요? 이제 동아리타임을 사용해 보세요!

동아리타임은 같은 동아리의 부원들이 효과적이고 쉽게 소통하고 교류하며 더욱 활발한 동아리를 만드는 공간입니다. 같은 기수, 이전/이후 기수의 부원들과 자유롭게 소통하며 만남의 장을 열어보아요!

동아리타임은 게시판 시스템을 통해 여러 개의 단톡방을 운영할 필요 없는 간단한 동아리 관리를 지원합니다. 동아리 인증 방식을 통해 외부인의 유입을 차단하고, 안전하고 신뢰성 높은 소통 환경을 제공합니다.

또한, 동아리타임은 일정 관리와 자료 공유 기능을 통해 체계적인 동아리 활동을 지원하며, 부원 간의 교류를 풍부하게 만듭니다. 이제 혼잡한 단톡방에서 벗어나, 동아리타임으로 편리하고 스마트한 동아리 운영을 시작하세요!

✨ 동아리타임의 배포 사이트

✨ 동아리타임의 소통 플랫폼

🏆 노션
🏆 ZEP

👀 서비스 화면

✨ 모든 페이지 모바일 화면 지원

  • '라인'의 랜딩페이지를 참고하여 접속시 애니메이션 효과로 화면이 변하게 구현했다.
  • 로그인 및 회원가입 버튼을 누르수 있다

회원가입 & 로그인 & 로그아웃

  • 유저 회원가입/로그인
  • 로그인을 하면 동아리 생성/인증/선택 페이지로 넘어간다.

동아리 생성 & 동아리 인증 & 동아리 선택

  • 동아리를 생성하여 인증 코드를 생성하면 다른 사람이 해당 인증 코드를 통해 인증할 수 있다.
  • 가입되어 있는 동아리 페이지를 선택하여 해당 동아리 메인 페이지로 이동한다.

메인페이지

  • 공지, 자유, 질문 게시판은 수정할 수 없고 게시판을 생성하거나 게시글 검색, 게시판 추가를 할 수 있다.

마이페이지

  • 닉네임, 비밀번호를 변경하거나 가입되어 있는 동아리를 관리할 수 있다.
  • 내가 작성한 게시글, 내가 남긴 댓글, 스크랩한 게시글을 관리할 수 있다.
  • 웹 알림 기능을 활성화하여 내 게시글에 댓글을 남기거나 대댓글이 달렸을 때 알림을 받을 수 있다.

내가 쓴 글

내 댓글

스크랩

게시글 리스트(게시판)

  • 게시글을 작성할 수 있다.
  • 해당 게시판에 작성된 글을 보거나 베스트 게시글을 볼 수 있다.

게시글 작성

  • Ajax를 이용한 게시글 작성으로 실시간으로 업로드가 가능하다.

캘린더

  • 동아리에 예정된 행사나 일정을 관리할 수 있다.
  • 동아리원 모두가 생성 및 삭제할 수 있어 자유로운 일정관리가 가능하다.

✨ 주요 기능

  • 동아리별 페이지

    • 회원 1명이 여러 동아리에 가입되어 있어도 동아리 id로 필터링하여 동아리별로 커뮤니티를 가질 수 있다.
  • 웹 알림

    • Django-Webpush 라이브러리를 사용하여 공지 게시판에 글이 올라오거나 게시글 작성 및 댓글 작성자에게 알림을 보낸다.
  • 일정 기능

    • JS fullcalender를 사용하여 동아리 내의 모든 행사 및 일정을 추가하고 삭제하여 일정을 한 번에 관리할 수 있다.
  • 아이디 찾기 및 비밀번호 재설정

    • 회원가입할 때 작성한 사용자 이름과 이메일을 통해 아이디를 찾을 수 있다.
    • 회원가입할 때 작성한 이메일로 비밀번호 재설정 링크를 전송하여 비밀번호 재설정 기능을 도입하였다.

🖥️ 개발 환경

Management Tool

  • 형상 관리 : Git
  • 커뮤니케이션 : Zep, Notion, Discord
  • 디자인 : Figma

🐳 Backend

  • Python 3.8.0
  • Django 4.2.x
  • Django Rest Framework 3.12.x
  • pipenv (패키지 관리 도구)
  • MySQL 8.0.4
  • Oracle (WAS)
  • Gunicorn 20.1.0 (배포용 WSGI 서버)

🦊 Frontend

  • lang: HTML5, CSS3, JAVASCRIPT

🖼️ Requirements.txt

aiohappyeyeballs==2.3.5
aiohttp==3.10.3
aiosignal==1.3.1
asgiref==3.8.1
attrs==24.2.0
certifi==2024.7.4
cffi==1.17.0
charset-normalizer==3.3.2
cryptography==43.0.0
Django==5.0.7
django-environ==0.11.2
django-webpush==0.3.6
environ==1.0
frozenlist==1.4.1
http-ece==1.2.1
idna==3.7
multidict==6.0.5
django-webpush==0.3.6
frozenlist==1.4.1
http_ece==1.2.1
idna==3.7
multidict==6.0.5
mysql-connector-python==9.0.0
mysqlclient==2.2.4
pillow==10.4.0
py-vapid==1.9.1
pycparser==2.22
pywebpush==2.0.0
requests==2.32.3
six==1.16.0
sqlparse==0.5.1
tzdata==2024.1
urllib3==2.2.2
yarl==1.9.4
typing_extensions==4.12.2
urllib3==2.2.2
yarl==1.9.4

🗂️ DB

  • MySQL 8.0.30

🌐 Server

  • AWS EC2 (Ubuntu 20.04)
  • Nginx 1.23 (Reverse Proxy)
  • Gunicorn 20.1.0 (WSGI Application Server)
  • Oracle (WAS)
  • HTTPS (TLS 1.2)

🔨 IDE

  • VSCode 1.69.2

💫 시스템 아키텍처

✨ ERD

📂 기획 및 설계 산출물

💞 팀원 소개

❤️‍🔥 동아리타임을 개발한 피로그래밍 21기 팀원들을 소개합니다!
나경원 강민석 하동현 한라현 황다예
Leader & Frontend & Backend Frontend & Backend Frontend & Backend Frontend & Backend Frontend & Backend