Groddit adalah aplikasi media sosial berbasis bahasa C yang mensimulasikan platform mirip Reddit.
Pengguna dapat melakukan registrasi, login, membuat Subgroddits, melakukan posting, memberi komentar bersarang, melakukan voting, serta berinteraksi melalui fitur follow.
Proyek ini dikembangkan sebagai bagian dari Tugas Besar IF2110 — Algoritma dan Pemrograman 2 2025/2026.
- Register – Create a new Nimon account.
- Login – Access the system.
- Logout – End the session.
- Profile – View user stats (Karma, Posts, Followers) and follow status.
- Data Security – Password hashing and configuration file encryption.
- Create Subgroddit – Establish a new community (e.g.,
r/algorithms). - View Subgroddit – Browse posts sorted by HOT (votes) or NEW (time).
- Post – Create a new post in a specific Subgroddit.
- View Post – Read a post and its nested comment threads.
- Delete Post – Remove your own posts (cascading delete).
- Comment – Add comments to posts or reply to other comments (Reply Tree).
- Delete Comment – Remove your own comments.
- Voting – Upvote or Downvote posts and comments to affect Karma.
- Undo Vote – Cancel a previous vote.
- Follow – Follow other users to see their updates.
- Unfollow – Stop following a user.
- Followers/Following – View social connections.
- Feed – View a personalized feed of posts from followed users (sorted by time).
- Save – Persist all application state (Users, Posts, Comments, etc.) to CSV files.
- Load – Load application state from a configuration folder.
- Help – Display available commands.
Struktur direktori:
├── .github/
├── .vscode/
├── bin/ # Hasil build (executable)
├── build/ # Object files (.o)
├── doc/
│ └── .gitkeep
│
├── src/
│ ├── adt/ # Abstract Data Types
│ │ ├── comment/
│ │ ├── comment_tree/
│ │ ├── feed/
│ │ ├── graph/
│ │ ├── list_berkait/
│ │ ├── mesin_karakter/
│ │ ├── mesin_kata/
│ │ ├── post/
│ │ ├── post_comment/
│ │ ├── social/
│ │ ├── stack/
│ │ ├── subgroddit/
│ │ ├── tree/
│ │ ├── user/
│ │ ├── voting/
│ │ ├── waktu/
│ │ └── boolean.h
│ │
│ ├── core/ # Logic & Handlers
│ │ ├── command/
│ │ ├── comment_handler/
│ │ ├── help_handler/
│ │ ├── load/
│ │ ├── post_handler/
│ │ ├── profile_handler/
│ │ ├── save/
│ │ ├── security/
│ │ ├── social_handler/
│ │ ├── subgroddit_handler/
│ │ ├── user_handler/
│ │ └── voting_handler/
│ │
│ ├── utils/
│ │ ├── ascii_art.c
│ │ ├── ascii_art.h
│ │ ├── main.c
│ │ └── main.h
│ │
│ └── test/
│ └── sample-data-spek/ # Dataset dari spek
│ ├── config.csv
│ ├── user.csv
│ ├── subgroddit.csv
│ ├── post.csv
│ ├── comment.csv
│ ├── social.csv
│ └── voting.csv
│
├── .gitignore
├── build.log
├── Makefile
└── README.md
This repository is brought to you by K01-D that consist of
| Name | Role | NIM |
|---|---|---|
| Muhammad Ashkar | Developer | 13524007 |
| Niko Samuel Simanjuntak | Developer | 13524029 |
| An Dafa Anza Avansyah | Developer | 13524038 |
| Raynard Fausta | Developer | 13524052 |
| Reinhard Alfonzo Hutabarat | Developer | 13524056 |