#Introduction: This document will address the problem the system wants to solve and the requirements of the software. Our application is an iOS application where individuals can have a comfortable social media-based environment to express their feelings and reach their goals. A user will be able to create and share messages with other users completely anonymously. Anonymous users will be able to interact with shared posts in encouraging and nonjudgmental ways. Compared to typical social media outlets such as Twitter, Facebook, etc. where users may feel embarrassed to share their authentic thoughts, our application encourages support and awareness. There are not many supportive social media applications that help users connect to each other through challenges and vulnerable times. This application provides a means to build a community to do just that. Furthermore, this application can complement regular meetings with a psychiatrist or psychologist. Between meetings with mental health providers, patients can document their experiences, share posts, support each other, and track their goals. Any of these features can be logged in case the user would like to share them with their mental health providers. The user will also be able to record their self-growth and development through tracking their emotions and goals. Essentially, our application will serve to build a community of support and growth.
#System Overview: As stated earlier, our application can be used in tandem with regular appointments with a mental health provider. If given permission, the physician will be able to view the patient’s thoughts through their messages and see their progress through completed goals. The other core functionality of our application is promoting a safe community to support people and escape the shortcomings of other social media applications.
#System Architecture: The system will be built on AngularJS, Ionic, Cordova (web technologies). As a result, the programming language we will use is JavaScript. AngularJS will drive our system to follow MVC (model-view-controller) architectural pattern. It will format, render, and navigate the views along with the Ionic framework. Cordova will be the platform to build the application on iOS and allow it to be made with web technologies.
#Data Design: The application will use Parse, a cloud storage solution, to store shares and user information such as their goals/favorites/calendar. To be specific, the separate data models will be the Users, Goals, Shares, and Calendars. We will tie a userID field to the Goals, Shares, and Calendars to keep track of which user it belongs to. Lastly, we will retrieve data using REST API calls to Parse.
#UI Design: The user interface of the application is designed to be easy to navigate and free of clutter. It will have four primary views: the view to display recent shares, the view to show your favorite shares as well your own shares, the view to track your goals, and the view to show your calendar of activities. These views will be implemented using a tab system (tab names: Community, Goals, Me, Calendar) on the bottom of the screen for quick navigation to any page to any other page. On the other side of the spectrum, the secondary screens are the login/registration/settings pages. The settings page will be accessed through a gear icon at the top right, and the login page will be the initial page with an option to remember the information for automatic login. The registration page will contain a very concise form for quick account creation. To interact with the application, users can click on a category (I feel you, Congratulations, OMG, etc.) for a share and upvote it. The user may also write out his/her goals on the goals tracker page, and check whether they have finished a task in one click. There will also be a mood tracker that changes the UI of the application depending on the value of the tracker.
#Component Design: -Login: The user will be prompted for their email and password to login. There will be a toggle for automatic login next time the user decides to use the application. -Registration: The user will be asked to register with their email and password. There will also be an optional text field asking the user what they would like to put about themselves as a means of self reflection. -Posting a message to other users: The user will be able to post a message to all other users of the application on the home screen by filling in a text field and submitting it through a button click. This is for users to share their thoughts when they don’t have someone to share it with. -Viewing recent global posts: The user will be able to view global shares on the community page and upvote/favorite the ones they like. There will not be the ability to comment because we do not want other users who are not professionals to provide feedback. Users will be able to filter posts by category to more quickly find shares of their interests. -Viewing favorite posts: Favorite posts will be stored in the “Me” tab. Users will be able to view their favorites posts for inspiration or they may delete favorite posts they do not support anymore. -Viewing personal posts: Users will be able to see a log of their own shares to show them their progress and reflect on how many upvotes their posts have received. Physicians may be able to identify the patient’s current thought patterns through their shares too. -Goal Tracker: There will be the ability to check off goals the user has completed as well as add/delete any goals. This is to help them remember the goals their physicians recommended they do, and encourage them to make strides to improve themselves. -Calendar: The calendar feature lets the user remember what they have done so far, and show what days they have completed/not completed their goals as well as their mood for certain days. This is another means to show progress and reflection for the user. They may also serve as a helpful log to a physician. -Settings: Users will be able to edit their email and password. They will also be able to edit their reason about me to see how they may have changed through the support they have received.