/SpeakUp

An Anonymous Social Media Application for Confessions

Primary LanguageJavaScript

Speak Up

An Anonymous Social Media Application for Confessions

API Documentation

SpeakUp is an anonymous social media web application that allows users to share confessions anonymously without fear of judgment.

Key Features

  • User authentication with anonymous handles
  • Posting textual confessions
  • Commenting and voting on confessions
  • User feed, profile, and trending feed
  • Reporting abusive content
  • Admin dashboard for moderation

Architecture

SpeakUp follows a three-tier architecture:

Frontend

  • ReactJS for UI
  • React Router for routing
  • TailwindCSS for styling
  • Form validation using Formik & Yup

Backend

  • Node.js runtime
  • Express framework for API endpoints
  • JWT authentication
  • Bcrypt password hashing

Database

  • MySQL relational database
  • Sequelize ORM

Core Libraries

Frontend

  • React
  • React Router
  • Tailwind CSS
  • Formik
  • Yup
  • Axios

Backend

  • Express
  • JWT
  • BcryptJS
  • Sequelize
  • MySQL2

Key Algorithms

  • Trending feed algorithm

Installation Guide

Prerequisites

  • Node.js v16+
  • MySQL database
  • npm package manager

Steps

  1. Clone the repo
git clone https://github.com/itsankitbhusal/speakup
  1. Install backend dependencies
cd backend
npm install
  1. Create a .env file with database and API credentials

  2. To run seeders

npm run seed seeders/<seederFile>.js
  1. Install frontend dependencies
cd frontend
npm install
  1. Create .env file with API url

  2. Start development servers

// Backend
npm run server

// Frontend
npm run dev

Frontend at http://localhost:5173
Backend at http://localhost:5001