Inspiration

In middle school, our teacher frequently made us write "freewrites" or short responses to interesting prompts. Most people slacked off, while others enjoyed reading theirs out loud to the classroom. I found these freewriters to take very little time, be somewhat fun, and an amazing way to introduce writing into anyone's life, whether they are into writing or not.

What it does

CollaboWriter is an online application where users respond to daily creative prompts. Then, they are matched with my algorithm with people of similar skill levels who also answered the same prompt. Then, the two parties exchange feedback (both specific feedback as requested and general). This allows both people to feel like their piece is not going to waste because it will be read, which encourages them to put more effort into it. The feedback help improvement, much like standard peer-editing.

How I built it

I used the Flask python framework along with SQLAlchemy for my storage. I am using the Bootstrap framework for the front-end and a lot of Javascript with AJAX to ensure that the information is seamlessly sent to the server for processing.

Challenges I ran into

It was quite difficult for me to build the complex relationships between users in the database. I have usually only used one table before, but this application has 4 tables (user, freewrite, feedback, and prompt), and managing this communication was a challenge.

Accomplishments that I'm proud of

I am proud of persevering through the challenge listed above as well as of getting the core functionality to work. As seen in the demo, everything works perfectly (the submission, the matching, the feedback). Everything in the demo is live, and it is a great feeling to see the smooth process that the end user goes through.

What I learned

I learned a lot more about the features of SQLAlchemy, version control, and AJAX. On top of coding skills, I learned how to perform basic market analysis for this project, as seen in the slideshow in my demo video.

What's next for CollaboWriter

I plan to discuss this project with various mentors and professors at Yale to see if this can be tried in an English classroom. Feature-wise, I plan this:

  1. Allow the user to answer their own prompt, which will match them with another user who answered their own
  2. Make everything more appealing
  3. Add automatic grammar/spelling checking functionality.
  4. Write code that sends out daily reminders to users to practice
  5. Get a domain, design a logo, publish the service on AWS using Elastic Beanstalk
  6. Market it and hopefully get many users!
Share this project:

Updates