Giter Club home page Giter Club logo

greenbull's Introduction

アプリケーション名

greenbull

アプリケーション概要

ユーザーごと、グループごとに予定を管理

URL

https://greenbull.onrender.com/

テスト用アカウント

  • Basic認証ID: wtnbkyt
  • Basic認証password: 38043
  • メールアドレス:aaa@aaa
  • パスワード:aaaaaa

利用方法

  • 予定の追加

    1. トップページの予定追加フォームに、予定名・開始日時・終了日時・場所・メモを入力
    2. 該当する参加者とグループにチェックを入れて登録ボタンを押す
  • グループの追加、編集

    1. ヘッダーのグループ一覧を押す
    2. 新規グループ作成を押し、グループ名を入力し登録ボタンを押す
    3. 編集したいグループを押す
    4. 「グループ情報を編集する」リンクを押し、グループ名を編集して「確定する」ボタンを押す
  • ユーザー自身の情報編集

    1. ヘッダーの「マイページ」を押す
    2. 名前・メールアドレス・グループ・編集し、登録ボタンを押す
  • 他のユーザーの情報編集

    1. ヘッダーの「利用者一覧」を押す
    2. 編集したいユーザー名を押す
    3. 名前・メールアドレス・グループ・編集し、登録ボタンを押す
  • 管理用画面

    1. トップページのURLの末尾に"/admin"を追加してエンターキーを押す

アプリケーションを作成した背景

自分自身の前職での経験から、編集権限のあるユーザーがその他のユーザーの予定を把握し自由に編集できるツールの必要性を感じた。ユーザーごとやグループごとに一覧表示をして予定の管理をしやすくするアプリケーションを開発することにした。

洗い出した要件

https://docs.google.com/spreadsheets/d/14l2DsDKMiJvEoMWP8eK4EQyYeQh78YRsr4dQIcODQCg/edit#gid=543973842

実装予定の機能

  • CSS装飾の実装
  • スケジュール情報が1件も存在しない場合にカレンダーが表示されるかわりに、スケジュール登録の操作説明を表示させる。
  • スケジュールを画面遷移することなくトップページ上で編集可能にする
  • スケジュール編集開始時に、登録されてある情報をもとにユーザーとグループが自動で選択されるようにする
  • ユーザー詳細ページにそのユーザーが紐付けられた予定を一覧表示する
  • ユーザーの権限を3種類(閲覧者・編集者・管理者)に分け、アクセスできるページを権限により制限する
  • 入力情報に誤りがある場合に、入力画面に入力情報を残したままエラーメッセージを表示させる。

データベース設計

Image from Gyazo

画面遷移図

Image from Gyazo

スクリーンショット

トップページ Image from Gyazo

マイページ Image from Gyazo

利用者一覧 Image from Gyazo

グループ一覧 Image from Gyazo

開発環境

HTML, CSS, JavaScript, Ruby on Rails, vscode, github

ローカルでの動作方法

以下のコマンドを実行

  1. git clone https://github.com/31-wtcr/greenbull.git
  2. cd greenbull
  3. bundle install
  4. yarn install

工夫した点

  • スケジュール登録時に、グループとユーザーを紐付けて中間テーブルへ同時に保存すること
  • javascriptのライブラリを用いてスケジュールを動的に表示させること

greenbull's People

Contributors

watanabeycr7 avatar

Watchers

 avatar

greenbull's Issues

未ログインでのアクセスをすべてログインページへ遷移

what

ログアウト状態では一切情報へアクセスできずログインページへ遷移する機能

why

不特定多数のユーザーから情報を閲覧されないようにするため

要件

ログインしていないユーザーはどのページのURLを指定しても必ずログインページに遷移する。

ヘッダー作成

what

greenbullのヘッダー

why

どのページからでもユーザーページやログイン・ログアウトを可能にするため

要件

左端にタイトルロゴがある。
右端に、ログアウトとユーザーページヘのリンクがある。

管理者新規登録

what

管理者を新規登録する機能

why

編集権限を有するユーザーを作成するため

要件

名前・所属グループ・パスワードをフォームに入力する。登録ボタンで新規登録が完了し、トップページへ遷移する。
所属グループはプルダウンで選択。

グループ情報編集

what

グループの情報をあとから編集する機能

why

必要に応じてグループの名前を変更できるようにするため。

要件

グループ名の詳細表示から、グループ名を選択することで名前の編集ができる。

スケジュール詳細表示

what

スケジュールに登録されてあるユーザーやグループ、日時などを表示する機能

why

予定されてある時間など必要な情報のみを1つのページで確認できるようにするため

要件

ヘッダーにトップページ・マイページへのリンクとログアウトボタンがある。
予定に登録されてある情報をすべて表示する。
編集ボタンを押すことで編集画面に遷移する。

利用者情報編集

what

登録している利用者の情報を編集する

why

必要に応じて、登録時から情報を変更するため。

要件

ヘッダーにトップページ・マイページへのリンクとログアウトボタンがある。
フォームに登録してある情報が表示され、編集完了ボタンを押すと情報が更新され詳細情報ページに遷移する。

管理者新規登録

What

編集権限のあるユーザー(管理者)の新規登録画面をつくる。

Why

既存のユーザーだけでなく必要に応じて新規に管理者を作れるようにするため。

要件

名前・所属グループ・パスワードをフォームに入力する。登録ボタンで新規登録が完了し、トップページへ遷移する。
所属グループはプルダウンで選択。

利用者情報詳細表示

what

利用者各個人の詳細を表示するページ

why

利用者一人に紐付いている情報を確認するため。

要件

ヘッダーにトップページ・マイページへのリンクとログアウトボタンがある。
編集ボタンを押すと編集ページに遷移する。

利用者情報削除

what

利用者情報を削除する機能

why

必要に応じて利用者情報を削除できるようにするため

要件

編集ページに削除ボタンがあり、そのボタンを押すことで情報を削除できる。
削除完了後は利用者一覧表示画面に遷移する。

スケジュール新規作成

what

スケジュールを登録する機能

why

各ユーザー、各グループの予定を登録するため

要件

ヘッダーにトップページ・マイページへのリンクとログアウトボタンがある。
予定名・開始時間・終了時間・場所・メモ・参加管理者・参加利用者を入力する。
予定名・開始時間・終了時間・参加管理者は必須項目とする。
参加者はプルダウンで選択する。
登録ボタンで予定の作成が完了し、トップページへ遷移する。

利用者一覧表示

what

登録されてある利用者を一覧表示するページ

why

利用者全員を表示して、必要に応じて編集ページに遷移できるようにするため。

要件

登録した利用者を所属グループごとに分けて一覧表示する。
利用者情報をクリックすると詳細表示に遷移する。
ヘッダーにトップページ・マイページへのリンクとログアウトボタンがある。

グループ詳細表示

what

1つのグループに関連する情報をまとめて表示するページ

why

グループに所属しているユーザーとその予定を1つのページで確認できるようにするため。

要件

グループ一覧表示から、グループ名を選択することで詳細表示画面にうつる。
選択されたグループに所属している管理者と利用者の名前が一覧で表示される。
名前を選択すると各ユーザーの詳細ページに遷移する。

グループ削除

what

グループの削除機能

why

必要に応じてグループを削除できるようにするため

要件

グループ情報編集ページに削除ボタンを設置する。
グループを選択し、削除ボタンを押すことで削除が完了し、グループ一覧ページに遷移する。
削除したさいは、関連する中間テーブルのレコードも同時に削除する。

グループ一覧表示

What

登録しているグループをすべて表示するページ

Why

登録しているグループを確認し、必要に応じて編集したいグループを選べるようにするため。

要件

トップページにグループ管理ボタンを設置し、そこから遷移する。
すでに登録されてあるグループを一覧表示する。

スケジュール削除

what

スケジュールを削除する機能

why

必要に応じてスケジュールをあとから削除できるようにするため

要件

編集ページに削除ボタンがあり、そのボタンを押すことで情報を削除できる。
削除後は予定一覧表示画面に遷移する。

グループ新規登録

What

グループを新規に登録する機能

why

必要に応じて新たなグループを作成できるようにするため。

要件

グループ名を入力し、登録ボタンを押すことで完了し、グループ一覧ページに遷移する。

管理者ログイン

What

管理者のログイン機能

Why

使用機器を限定せず、どこからでもログインして情報に到達できるようにするため。

要件

メールアドレス・パスワードをフォームに入力する。ログインボタンで認証される。その後、トップページへ遷移する。

スケジュール一覧表示

what

スケジュールをすべて表示する機能

why

全ユーザーのスケジュールを表示して全体像を把握できるようにするため

要件

このページをトップページ扱いとする。
ヘッダーにトップページ・マイページへのリンクとログアウトボタンがある。
予定をクリックすると詳細表示画面に遷移する。
所属グループごとに分けて予定を表示する。
利用者一覧画面に遷移するボタンがある。

スケジュール編集

what

スケジュール情報の編集機能

why

スケジュールを登録時から変更可能にするため

要件

ヘッダーにトップページ・マイページへのリンクとログアウトボタンがある。
フォームに登録してある情報が表示され、編集完了ボタンを押すと情報が更新され詳細情報ページに遷移する。

利用者登録

what

新規で編集権限のないユーザーを登録する機能

why

必要に応じて利用者を新しく登録するため。

要件

名前・所属グループ・パスワードをフォームに入力する。登録ボタンで新規登録が完了する。
その後、トップページへ遷移する。
ヘッダーにトップページ・マイページへのリンクとログアウトボタンがある。

管理者ユーザーページ

What

管理者個人に紐付いた情報を見るページ

Why

操作している管理者に関する情報をまとめて表示し、見たい情報への到達を容易にするため。

要件

管理者に紐付いた予定を一覧表示する。
予定を選択することで詳細表示画面に遷移する。
ヘッダーにトップページ・マイページへのリンクとログアウトボタンがある。
関連する予定が編集・削除された場合はその日時と編集したユーザーを表示する。

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.