Domain Modeling :: Digital Journaling
Welcome to my simplistic version of digital journaling app.
I have been a long-advocate for having meaningful connection through self-reflection. While some journal apps I have seen simply record special memories and events, some focus more on mental health, mindfulness and self-care. I have decided to approach this app build with basic features of recorded events and necessary attributes.
The Minimum Viable Product (MVP) of Storybook app is to allow the user to log events, places, moods and self-reflect from various points of views (calendar, map, photos).
Models
User, Event, Category, Image
user
has_many
:events
event
belongs_to
:user
eventbelongs_to
:category
eventhas_many
:images
category
has_many
:events
image
belongs_to
:event
Controller
ApplicationController
Api::V1::AuthController
Api::V1::CategoriesController
Api::V1::EventsController
Api::V1::ImagesController
Api::V1::UsersController
User Account and Validation
JWT Authentication: Sign Up, Log In and Log Out.
Back-End
$ git clone 👾
$ bundle install
$ rails db:create && db:migrate
$ rails db:seed
$ rails s
Front-End
Open Chrome browser, and redirect to a new local host to start the app.
Alternatively, it is fully deployed on Netlify!
Storybook was completed in a 2-week timeframe from implementing Rails back-end, ReactJS front-end, Cloudinary API, Google Maps API and Material-UI library. Future cycle of product development as follows:
- Search Bar. Over the time, the user will have many events, and it gets troublesome when the user needs to immediately access a specific event entry. A search bar to quickly type event title and access the journal entry would be useful.
- Add
Friend
to model associations. I envision my app to emulate similar concept such as Instagram. Instead of creating a simple journaling app, what about a social journaling platform. Each user can personalize their privacy whether or not they'd like to share with their friends.
- Adding mood tracker. Current attribute
vibe
to capture my preliminary attempt of gathering user mood data on each event entry. I found a mood tracker API that I would love to integrate in future project build. User can view their journal entries based onMood
under View NavBar. - Current event entry only allows one image upload. User should be able to upload multiple images, insert GIF and video upload.
- Create a toggle track for dark mode. 😎
- Active Record
- Bcrypt
- PostgreSQL
- ActiveModel::Serializer
- Rack CORS
- React Router
- React Infinite Calendar
- Google Map React
- React Places Autocomplete
- Cloudinary
- Material-UI