/your-story

Primary LanguageJavaScript

Your Story

View the demo video here

This is a project about Your Story. It's a project for recording a familiarity, of sharing your pride. It's a project of identity and love, of growth and acceptance. It's a project about you, and us, and everyone in their togetherness. We hope Your Story can serve as a way of connecting with others who share your experiences, to be a platform where you can feel empowered in your identity and affirmed by the reflection of what deserves the most love, yourself, that you can see on the faces and in the stories of people who choose to share them.

Inspiration

In following the values and goals of this Hackathon, which are to empower members of the LGBT community through expressing validity and expressing ourselves, we realized that the best way to find that sense of validity, to best way to express our pride, is to provide a platform for people to express themselves as themselves, a story that can be whatever the writer wants it to be. We've created a project that allows people to share their personal experiences, stories that convey an identity that people may feel alone in. That sense of solitude is something that one should never have to face, though it is a feeling we've all fought before. We want our project to be a force of positivity and affirmation in that regard.

What it does

The features of our web application will empower this self-expression by showing people that they are not alone in their pride.

To log in, a user must enter their email address. Users will be sent an email link which will grant them a session on the web app. First-time users are prompted to enter a display name, which can be a pseudonym if the author chooses.

On the global story page, users can see all stories posted globally. To view the next story, a user can click on the right arrow button to view the next post. Posts are viewed sequentially, so once you've viewed one story you can't go back. However, users have the option to "heart" a post which will list the post on their profile. For a user to go to their profile, they can click on the frog icon. On a story, a user can click on the poster's name to view their profile.

On a user profile page, all the user's posts are listed. Additionally the posts that the user has hearted are listed. To view a post, the name of a post can be clicked. Additionally on this page, there is a + icon where the user can make a new post. The star icon will lead the user back to the global posts.

Additional features not included in the UI is the pages /changename which can allow the user to change their name at any time, and /logout which will allow the user to logout.

How we built it

We used Node.js for backend and MongoDB as our database system. We are hosting the web application on Amazon Web Services using a domain we bought from Route53 and an instance from EC2. We coded the front end using HTML, CSS, and JavaScript.

Challenges we ran into

Our primary challenge in this event was learning how to use Amazon Web Services and getting permission to send emails using SES. Additionally, completing our project and vision given our timeline was a difficult task, but one we greatly enjoyed triumphing over. We also learned how to pivot our project forward in new directions.

Accomplishments that we're proud of

We are proud of hacking together our entire project in two days, as we joined the event late. We are also proud of having a complete project that serves as a platform for people to share and express themselves, encouraging validation and empowerment.

What we learned

We learned a lot about the functionality and utility of Amazon Web Services over the course of this project, essentially learning it from scratch and being reminded of a variety of web app concepts as we went along.

What's next for Your Story

Adding a feature to enable comments is an essential next step for our project, something that we are excited to do but saddened that we didn't have the time to complete before the end of the event. A comment feature will encourage more discourse and sharing. We also want to enable the sharing of photos and more creative options for our users in the releasing of their story.