Coder Social home page Coder Social logo

forweaver2.0's Introduction

학생들을 위한 소셜 코딩 포위버!

포위버는 학생들을 위한 소셜 코딩을 목표로 Spring MVC + MongoDB를 활용하여 만든 깃 저장소 관리 사이트입니다.

해당 저장소는 학생들에게 어려울 수 있는 버젼 관리 시스템이나 개발자용 커뮤니티(위키 & 이슈트래커 등)를 학생 시각에서 다룰 수 있도록 도와주려는 목적으로 만들어졌습니다. 또한 GIT 저장소를 보다 손쉽게 수업에 활용하게 하는 것을 목표로 하고 있습니다.

실행 데모 및 설명은 아래 내용과 스크린샷을 참조해주세요.

배포 라이센스는 MIT License하에서 배포되며 그 외 저희가 사용한 라이브러리는 NOTICE.txt를 참조하시면 됩니다.

실행방법

  1. 자바 개발환경을 구축합니다.

    1. JDK 설치 - 사이트로 가기
    2. JDK 환경변수 설정 - 참고 블로그
  2. git clone 명령어로 forweaver를 로컬 저장소에 내려받습니다.

$ git clone https://github.com/goesang/forweaver.git

  1. 몽고디비를 설치하고 실행합니다.

    • 세부사항 설정 파일 위치: /src/main/resources/spring/applicationContext.xml
  2. 리눅스 환경이라면 /src/main/webapp/WEB-INF/web.xml에서 git 저장소 /home/git/를 설정합니다.

  3. war파일 생성 후 실행하거나 메이븐에서 다음 명령어를 실행합니다.

mvn tomcat7:run

  1. 셋팅을 마치면 아래 주소로 접속해 테스트합니다.

http://127.0.0.1:8080

주요 스크린샷

로그인 화면

login_0.5.17.png

저장소 관리 화면

repository_0.5.17.png

태그 게시판 화면

tagcommunity1_0.5.17.png


tagcommunity2_0.5.17.png

숙제 저장소 화면

lecture_0.5.17.png


lecture-branch_0.5.17.png

forweaver2.0's People

Contributors

goesanghan avatar

Stargazers

윤경 avatar MyungSeok, Seo avatar PRO. SCW avatar  avatar Park Sang kil avatar Dongwoo Gim avatar Gunhee Lee avatar Ralf Yang avatar

Watchers

James Cloos avatar  avatar Park Sang kil avatar

Forkers

cariost

forweaver2.0's Issues

SVN - 파일 편집

SVN File 편집기능

SVN File 편집기능으로 SVNCommitInfo, ISVNEditor를 이용해서 파일 편집기능

* Issue list

  • 최초 파일 수정에 대해서는 정상적으로 edit가능하고 커밋로그도 이상없음
  • 편집 후 해당 페이지에 계속 있는 상태에서 다시 편집기능을 해서 수정 시 정상적으로 반영
  • 저장소 탭을 이용해서 빠져나온 후 다시 프로젝트 접근 후 파일 수정 시도 시 체크섬 에러 (이미지 참조)
  • 로깅 처리 재정비

    logback으로 라이브러리를 바꾸고 전체적으로 부실한 로깅 처리 업그레이드.

    SVN - 디렉터리 체크

    SVN 디렉터리 검사

    SVN으로 관리되고 있는 프로젝트에서 browser스캔 시 해당 파일이 디렉터리인지 유무 검사

    * Issue list

  • 파일임에도 Directory로 체크
  • SVN - 락 & 언락 라이브러리 이슈

    * SVN Lock & UnLock Issue

    이슈사항 정리

    $ 수행과정

    1. Lock & UnLock 기능을 수행하기 위해 SVNKit DAV 서버로 접속
    2. Repository 접근을 위해서 계정정보를 입력 (Spring Security)
    3. Lock & UnLock을 하고자 하는 파일을 선택 후 Lock & UnLock 버튼을 누름
    4. 정상적으로 메소드는 수행되나 다시 저장소를 로드 후 확인 시 변경된 사항이 없음

    $ 기대결과

    1. Lock & UnLock을 하고자 하는 파일을 선택 후 버튼을 누르면 정상수행 및 상태변경

    이슈관련 코드 정리

    $ 이슈사항


    메소드의 첫번째 인자로 SVNURL이 들어옴. 서버의 URL주소를 받아 현재 저장소에 있는 파일을 정상적으로 로드 후 락을 건다. 아래와 같이

    File모드의 메소드가 존재하나 위와 서버에 파일이 없다는 에러가 발생하므로 SVNURL모드로 설정 후 수행할 수 있다. 하지만 메소드 수행 후 다시 저장소를 로드하면 파일의 상태가 변경되지 않음. 클라이언트 프로그램인 TortoiseSVN을 사용한 결과도 아래와 같이

    락을 걸기위한 정보를 입력 후 OK버튼을 누르면

    XML에러가 발생. 유명 이슈처리 사이트에서 예상하는 문제사항은 아래와 같음.
  • 권한이 중복되어 발생하는 문제 -> cleanup을 수행 후 다시 시도
  • Subversion 1.9 버전대가 불안정하므로 안정화 될 때까지 기다려야 한다.
  • TortoiseSVN 1.9.4 ~ 1.9대의 최신버전에서 발생하는 이슈사항
  • 현재 이와 같은 문제는 아직 해결되지 않고 있음

    FTP 관리 기능

    • FTP 저장소를 생성.
    • FTP 저장소 삭제.
    • FTP 저장소 맴버 관리.

    svnkit dav 인코딩 강제 적용에 의한 에러

    bug
    svnkit dav 서블릿을 통해 svn 저장소를 체크아웃한 이후 커밋 작업을 한번이라도 하면 로그가 보이지 않고

    스크린샷처럼 다시 클론하지 못하는 버그가 있었습니다.

    file 저장소를 체크아웃 해본 결과 커밋할 때부터 저장소가 깨진것 같은데

    encoding

    확인해본 결과 web.xml에 한글 인코딩을 위한 utf8 강제 적용 필터를 제거한 이후에는 이상 없었습니다.

    svn 주소로 주고받는 경우 필터 적용이 안되게 바꾸어야 할 거 같습니다.

    SVN - HitMap

    SVN HitMap 구현

    SVN하에서 관리되는 저장소의 커밋 수를 참조하여 시각적으로 표현

    * Issue list

    SVN - Zip 다운로드

    SVN zip 다운로드

    SVN으로 관리되고 있는 프로젝트를 zip으로 다운로드

    * Issue list

    게시글 코드 리펙토링!

    서비스를 만들면서 게시글에 대한 기능이 많아지다보니 코드가 난잡해져서 수정해야함.

    추가로 태그가 없어도 검색이 가능하게 바꿔야함.

    SVN - 저장소 브라우저

    SVN 저장소 브라우저

    SVN으로 관리되고 있는 프로젝트에 대한 browser(파일, 디렉터리 목록 뷰)기능

    * Issue list

  • Browser List를 나타낼때 파일과 디렉터리에 대한 판단 이슈로 아이콘 이미지 이슈 (close)
  • 이동 시 '/' 가 계속 붙는 이슈
  • SVN - Diff

    SVN Diff 기능

    SVNClientManager, SVNDiffClient 를 이용하여 Diff 출력

    * Issue list

    검색 UI 변경

    기존 forweaver에서 이슈나 게시판을 이용할 때 태그 검색을 우선시 ui를 만들다 보니
    사용측면에서 불만사항을 많이 받았습니다.

    tagcommunity1_0 5 17

    그래서 앞으로 아래와 같은 ui 배치로 일반 검색 ui를 메뉴에 추가해볼까합니다.
    mockup

    SVN - 저장소 제거

    SVN 저장소 삭제기능

    FileUtils를 이용해서 Directory Delete 및 해당 저장소에 쓴 글도 모두 삭제

    FTP server 연동

    ftp 클라이언트롤 통해 forweaver로 접속하여 파일을 공유할 수 있도록 기능을 추가함.

    SVN - Stream

    SVN Stream 구현

    SVN하에서 관리되는 저장소의 로그를 참조하여 시각적 통계 Stream을 구현

    * Issue list

    SVN - 통계 및 저장소 정보

    SVN 저장소 정보

    svn 저장소 관련 정보를 보여줍니다.
  • 커밋터 정보
  • 커밋 날짜/시간
  • 라인 추가/삭제 수
  • 파일 추가/삭제/수정 수

  • * Issue list

    SVN - Blame

    SVN Blame 기능

    SVNClientManager, SVNLogClient, AnnotationHandler를 이용해서 Blame 출력

    * Issue list

    SVN - svnkit 라이브러리 변경 및 svnkit-dav jar 변경

    SVNKit관련 라이브러리 변경 및 SVNKit-DAV jar로 변경

    yobi기반 프로젝트를 참조하여 현재 svnkit관련 라이브러리를 변경 및 dav 설정 변경

    * 변경목록

  • svnkit : sonia.svnkit(ver.1.8.14-scm1)
  • svnkit-dav : sonia.svnkit(ver.1.8.5-scm4)
  • repository추가 : https://maven.scm-manager.org/nexus/content/repositories/releases/

  • * Issue list

    FTP 웹 뷰어 기능

    • FTP 웹 브라우져 기능.
    • FTP 폴더내의 파일 웹 뷰어 기능.
    • FTP 전반적은 통계를 보여주는 기능.
    • ETC.

    SVN - 파일 다운로드

    SVN 파일 다운로드

    SVN으로 관리되고 있는 프로젝트 하 파일들을 다운로드

    * Issue list

    Recommend Projects

    • React photo React

      A declarative, efficient, and flexible JavaScript library for building user interfaces.

    • Vue.js photo Vue.js

      🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

    • Typescript photo Typescript

      TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

    • TensorFlow photo TensorFlow

      An Open Source Machine Learning Framework for Everyone

    • Django photo Django

      The Web framework for perfectionists with deadlines.

    • D3 photo D3

      Bring data to life with SVG, Canvas and HTML. 📊📈🎉

    Recommend Topics

    • javascript

      JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

    • web

      Some thing interesting about web. New door for the world.

    • server

      A server is a program made to process requests and deliver data to clients.

    • Machine learning

      Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

    • Game

      Some thing interesting about game, make everyone happy.

    Recommend Org

    • Facebook photo Facebook

      We are working to build community through open source technology. NB: members must have two-factor auth.

    • Microsoft photo Microsoft

      Open source projects and samples from Microsoft.

    • Google photo Google

      Google ❤️ Open Source for everyone.

    • D3 photo D3

      Data-Driven Documents codes.