Rabbit is a personal project developed to deepen my full-stack skills, inspired by Reddit, where users can join rooms, create posts, and engage in discussions. Built with React, TailwindCSS, Shadcn/ui, Django, and PostgreSQL, it features Redux Toolkit for state management, React Query for data fetching, GitHub OAuth for authentication, EditorJS for rich text creation, infinite scroll, BeautifulSoup for scraping link data, Cloudinary for image hosting, and Redis caching for higher vote differences on posts/comments.
- Frontend: React with TypeScript, Tailwind CSS, & Shadcn/ui
- Backend: Django
- Database: PostgreSQL
- Post and Comment Voting: Rabbit incorporates a voting system for posts and comments. The content with the highest vote difference is cached and displayed prominently.
- GitHub OAuth Authentication: Rabbit integrates GitHub OAuth for user authentication, ensuring a secure login process.
- Post Creation with Editor.js: Rabbit utilizes Editor.js for post creation, providing a rich text editing experience.
The journey of developing Rabbit was filled with learning opportunities. One of the significant challenges was integrating Editor.js on both the frontend and backend, which enhanced my understanding of rich text editing in web applications.
Building a platform similar to Reddit also provided insights into features like post and comment voting and caching popular content. Implementing GitHub OAuth authentication was another highlight, reinforcing the importance of secure and user-friendly authentication methods.
Stay tuned for more updates as I continue to refine and expand this project!
I welcome any questions or suggestions. Your feedback is greatly appreciated!
Explore the live version of this project on rabbit-23mo.onrender.com.