MemoSpace
In this application, text and images can be recorded and linked to multiple tags for management.
By performing a search using AND conditions with multiple tags, you can easily find desired memo from a large number of memos.
This application has following functions.
- Posting memos.
- Listing memos posted by user.
- Display detail view of posted memo.
- Register user.
- Login as registered user.
- Controlling transaction.
- Uploading images.
- Pagination.
- Carrierwave gem for uploading images.
- Devise gem for user management.
- Heroku as deploy environment.
- Docker container for application environment.
- TravisCI to deploy as CICD pipeline.
- MySQL as database on developping envoronment.
- Postgresql on production environment.
- Relation between Tag and Memo are many to many.
Column | Type | Options |
---|---|---|
string | null: false | |
password | string | null: false |
name | string | null: false, index: true |
- has_many :memos
- has_many :tags
- has_many :event
Column | Type | Options |
---|---|---|
title | string | null: false |
text | string | |
image | string | |
user | references | null: false, foreign_key: true |
event | bigint |
- has_many :tag_memos
- has_many :tags, through: tag_memos
- belongs_to :user
- has_one :memo
Column | Type | Options |
---|---|---|
name | string | null: false, index: true |
user_id | references | null: false, foreign_key: true |
folder_id | references | foreign_key |
- has_many :tag_memos
- has_many :memos, through: tag_memos
- belongs_to :user
- belongs_to :folder
Column | Type | Options |
---|---|---|
memo | references | null: false, foreign_key: true |
tag | references | null: false, foreign_key: true |
- belongs_to :memo
- belongs_to :tag
Column | Type | Options |
---|---|---|
name | string | null: false |
user | references | foreign_key: true |
- has_many :tags
Column | Type | Options |
---|---|---|
start | datetime | |
end | datetime | |
color | varchar | |
allday | tinyint | |
user_id | references | null: false, foreign_key: true |
- belongs_to :user
- has_one :memo