I have been working on a Twitter clone for a little over a month. So far, I set up the backend:
- designed a database in PostgreSQL
- created a REST API with Node.js to post and get data from the database (still improving this)
- implemented user authentication with passport.js
...and developed the basic front-end with Svelte/kit that allows users to sign-up, sign-in, submit a tweet, like, retweet, follow/unfollow. I will be adding more features in the future.
My goal for this project was to practice my web development skills (primarily Node.js and front-end Javascript), but also create an edit button that allows users to edit their tweet after posting it. This is mostly for typos, grammar, and missing words. At first when I approached this project, I was going to do different "versions" of the tweet. Since Twitter is
microblogging platform, I thought this would be too clumsy.
I am also working on my Master's in Data Science and took a course in natural language processing (NLP) in the fall. I want to practice my skills from the course, so I am researching ways to determine if two pieces of text are semantically similar (basically if they have the same meaning). That way a user can attempt to edit their tweet, and if it passes a certain (TBD) threshold for similarity, then the edit will go through. Otherwise, they will be notified.
Here is the
link to the GitHub. I'm working on it (almost) everyday, so it is constantly changing.
I'll also be writing more details on the project on
hashnode. The blog is more for me to get ideas out and share them, and hopefully others will share their ideas with me or give feedback, and less of a resource for learning.