React/Rails Write Challenge 애플리케이션 프로젝트 계획

4860 단어 railsreactcodenewbie
작년 4월에 나는 온라인 작가 단체에서 개최한 소설 경연 대회를 위해 응용 프로그램을 개발했다.이 설정은 사용자가 이 프로그램을 등록하고 소설을 입력한 다음, 이 프로그램을 사용하여 그들의 작문 진도를 추적하고, 다른 사용자의 작문 진도를 볼 수 있도록 하는 것이다.

이 개념은 기본적으로 Nanowrimo 사이트와 유사한 것을 만들기 위한 것이다(국가소설 창작의 달, 나처럼 창작 공간을 자주 돌아다니지 않는 사람들을 대상으로!)그러나 규모는 작고 경기 조직자가 원하는 특정 기능에 전념한다.
나는 그것을 가동시켰고, 팀은 그것을 사용했다. 아주 좋았다!
몇 달 후, 나는 다른 사이트 버전의 요청을 받아 다른 그룹이 사용하도록 했다.나는 새로운 버전을 시작하고 진행하며 해마다 새로운 프로젝트를 갱신하는 등 몇 가지 일을 바꿨다. 그러나 이렇게 하는 것은 나로 하여금 생각하게 한다.다른 그룹을 위해 이 사이트를 만드는 데는 이 사이트의 또 다른 완전한 실례가 필요하다. 만약 내가 다른 그룹을 위해 이 사이트를 다시 만들고 싶다면, 이것은 정말 비효율적이다.만약 내가 프로그램의 코드를 다시 쓰는 데 시간이 좀 걸린다면, 나는 사용자로 하여금 같은 프로그램에서 여러 경기를 실행하고 관리하게 할 수 있다.
이 점을 감안하여 나는 사용자가 자신의 경기를 만들고 실행할 수 있도록 지원하는 버전의 프로그램을 만들기 시작했다. 만약 그들이 원한다면 여러 번 할 수 있다.
이것은 프로젝트 계획에서 시작된 것이다. 이것이 바로 내가 이번 주에 줄곧 한 것이다!

필기


먼저, 이 애플리케이션을 통해 사용자가 무엇을 할 수 있는지 설명하는 사용자 이야기가 있습니다.
- One user story:
  - A user signs up for the app
  - They make their own contest
  - As the contest admin, they can set a date for when the contest ends, if they want it to end
  - They have/generate a link to let other people join the contest, and send that out
  - They can make other users in their contest admins too, if they want 
  - They make a novel, associate it with their own contest
  - They view their novel, and also edit it
  - With the same account, they can create, view, and/or sign up for other contests if they like as well
- Another user story:
  - A user receives a link for a friend to sign up for this app
  - They sign up for the app first
  - They enter the token to sign up for that specific contest
  - This prompts them to create a novel, and they have the option to add the novel to that contest, since they have joined the contest
 - The user creates another novel that they just want to have for themselves
    - This novel is not associated with any contest and won't show up on any contest pages

모델


내가 제기한 사용자 이야기에서 나는 내가 나의 데이터베이스 모델과 복잡한 관계를 구축해야 한다는 것을 안다.사용자는 많은 경기를 할 수 있어야 하고, 경기도 많은 사용자가 있어야 한다.나는 또한 사용자가 그들의 경기와 다른 관계를 가질 수 있기를 바란다. 예를 들어, 한 사용자는 두 경기의 관리자일 수도 있지만, 단지 세 번째 경기의 구성원일 뿐이다.
이 점에서 이것은 익숙하게 들리기 시작했다. 나는 내가 이전의 프로젝트를 위해 a가 매우 비슷한 모델을 제시했다는 것을 깨달았다.이 앱에서 사용자는 회원 신분을 통해 소설 프로젝트를 온라인으로 협업할 수 있는데 그 중에서 하나의 캐릭터 속성을 포함하여 사용자를 소설 프로젝트의 관리자나 일반 구성원으로 지정할 수 있다.
소설부터 시합까지 조금만 조정해 주세요. 장사하고 있어요!나는 또 '경기' 를 '도전' 으로 바꾸기로 결정했다비록 최초의 용도는 새로운 경기를 실행하는 것이었지만'작문 도전'은 더욱 보편적이고 응용 프로그램의 더 많은 용례를 대표하기 때문에 모델 차원에서부터 의미가 있다.경연은'도전'으로 바뀌었고, 소설은'종목'으로 바뀌었다.
나는 또한 프로젝트가 여러 도전의 일부분이 될 수 있기를 희망하지만 이것은 더욱 간단한 연결표이다.

나는 이 도표를 무료이고 직관적이며 사용하기 쉽기 때문에drawSQL을 사용해서 표를 드래그해서 직관적으로 설명하기 쉬운 방식으로 일을 구성할 수 있다.

스케치


나는 모형을 그리는 동시에 이 초도들을 그렸다.이 스케치들은 내가 모델에게 내가 원하는 모든 것을 가질 수 있도록 도와주었고, 반대로도 마찬가지였다.

나는 전단과 최초의 응용 프로그램의 주요 차이점은 사용자가 여러 도전의 시작 페이지를 쉽게 보고 새로운 도전을 만들 수 있기를 바란다는 것을 안다.그 외에 나는 그들이 모든 항목을 쉽게 볼 수 있기를 바란다.내가 이 프로젝트의 React 부분에 들어갔을 때 레이아웃이 바뀔 수 있지만, 지금은 밑에 있는 메뉴가 의미가 있다.프로젝트 카드는 자신의 소설 경연 프로그램의 레이아웃을 직접 추출한다.

여러 가지 도전에 대해 주도항란에 도전 안내서를 설치하는 것은 의미가 없기 때문에 저는 여기서 프로젝트와 안내서 보기를 두 개의 옵션 카드로 메인 도전 페이지에 표시합니다.

이 프로그램에 추가하고 싶은 또 다른 일은 이력서와 사용자 항목이 있는 사용자 페이지를 추가할 수 있다는 것이다.이상적인 경우, 사용자는private vs 공공으로 설정할 수 있어야 하며, 사용자의 모든 항목은 그들에게 표시되지만, '공공'항목만 다른 사용자에게 표시될 수 있다.

마지막으로 아주 간단한 도전 관리팀입니다.나는 사용자가 각종 설정을 변경할 수 있기를 바란다. 예를 들어 도전을 열기/닫기, 공공/개인, 그리고 그들이 시작과 종료 날짜를 설정해야 하는지 확인할 수 있기를 바란다.이것은 나의 발전에 따라 바뀔 수 있는 부분이다. 단지 내가 여기에 많은 기능을 추가할 수 있기 때문이다.하지만 이것은 내가 지금 해야 할 일이라는 것을 명심해라.

다음은 뭐죠?


이제 제 사용자 이야기와 모델에 대해 더 잘 알게 되었습니다. 저는 이 프로젝트를 위해 Rails API 백엔드를 구축하려고 합니다!곧 이 방면에 관한 더 많은 보도가 있을 것이다.
이 프로젝트는 현재 진행 중이므로 질문, 건의, 피드백이 있으면 언제든지 하세요!

좋은 웹페이지 즐겨찾기