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