Skip to content

lmProgramming/uni-database-design

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

213 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Social Media DB

A database system for a social media platform, designed for efficiency and scalability. Supports user accounts, posts, interactions, messaging, and social relationships. I (lmProgramming/Mikołaj Kubś) am just one of the four contributors to this project for the "Database Design" course in PWr.

The idea of the course was to first design a database in multiple formal stages, then implement it using SQL. We used GORM and Go for this part. Next part of the course was to do the same thing again, but in NoSQL. We used MongoDB then. Refer to the report for more info.

Features

User Management: Registration, login, role-based access (admin, user, guest).

Content Interaction: Posts, likes, comments, hashtags, media storage via external links.

Messaging: Private conversations and group chats.

Friend System: Friend requests, followers, and relationship tracking.

Events & Pages: Organization and management of public pages and events.

Reporting: SQL queries for data insights (e.g., trending hashtags, most active users).

Index Optimization: Use of B-Tree, Hash, and BRIN indexes for performance.

Soft Delete: Retains deleted data for recovery.

ORM Support: Implemented using GORM for PostgreSQL.

NoSQL Integration: MongoDB-based alternative for scalability.

Infrastructure: Dockerized database deployment with automated scripts.

Tech Stack

Database: PostgreSQL, MongoDB ORM: GORM (Go) Data Generation: Faker (Python & Go) Backend Support: Makefile automation, Dockerized setup

About

Database design project (projektowanie baz danych) from university

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 49.9%
  • Go 41.2%
  • JavaScript 5.4%
  • PowerShell 1.2%
  • Shell 1.0%
  • PLpgSQL 0.9%
  • Makefile 0.4%