CLI-based Reddit-inspired application written in C.
Project Directory:
if2110-tubes-2025-k01-g-1/
├── README.md
├── Makefile
├── .gitignore
├── bin/ # Compiled executables
├── build/ # Object files (.o)
├── src/ # Source files
│ ├── main.c
│ ├── main.h
│ ├── adt/ # Abstract Data Types
│ ├── core/ # Core application logic
│ └── utils/ # Utility functions
├── config/ # Configuration files
└── docs/ # Documentation
| No | Nama | NIM |
|---|---|---|
| 1 | Stevanus Agustaf Wongso | 13524020 |
| 2 | Nicholas Wise Saragih Sumbayak | 13524037 |
| 3 | Jason Edward Salim | 13524034 |
| 4 | Mahatma Brahmana | 13524015 |
| 5 | Anindya Naufal Pinasthika | 13524013 |
LOAD: Memuat state Groddit dari folder konfigurasi (saat belum login).NEW: Memulai state kosong tanpa memuat konfigurasi apa pun.
REGISTER: Membuat akun baru dengan username unik serta password valid.LOGIN: Masuk ke akun pengguna.LOGOUT: Keluar dari akun aktif.
HELP: Menampilkan daftar perintah yang tersedia.SAVE: Menyimpan state Groddit ke folder konfigurasi.QUIT: Keluar dari program Groddit.
PROFILE <USERNAME>: Menampilkan profil lengkap pengguna tertentu.
FOLLOW <USERNAME>: Mengikuti pengguna lain.UNFOLLOW <USERNAME>: Berhenti mengikuti pengguna lain.FOLLOWERS <USERNAME>: Menampilkan daftar pengikut dari pengguna tersebut.FOLLOWING <USERNAME>: Menampilkan daftar pengguna yang diikuti.
CREATE_SUBGRODDIT <NAME>: Membuat Subgroddit baru (harus unik dan diawalir/).VIEW_SUBGRODDIT <NAME> <MODE> <ORDER>: Menampilkan daftar post dalam Subgroddit sesuai mode (HOT/NEW) dan urutan.
POST: Membuat postingan baru di Subgroddit.VIEW_POST <POST_ID>: Menampilkan detail sebuah post beserta komentar-komentarnya.DELETE_POST <POST_ID>: Menghapus post milik sendiri (cascading delete).
COMMENT <POST_ID> <COMMENT_ID>: Menambah komentar baru atau reply ke komentar lain.DELETE_COMMENT <POST_ID> <COMMENT_ID>: Menghapus komentar milik sendiri beserta seluruh reply.
UPVOTE_POST <POST_ID>,DOWNVOTE_POST <POST_ID>,UNDO_VOTE_POST <POST_ID>: Voting pada post.UPVOTE_COMMENT <POST_ID> <COMMENT_ID>,DOWNVOTE_COMMENT <POST_ID> <COMMENT_ID>,UNDO_VOTE_COMMENT <POST_ID> <COMMENT_ID>: Voting pada komentar.
TRENDING <SUBGRODDIT> <DURATION> <UNIT>: Menampilkan kata kunci yang sedang tren pada Subgroddit.
SHOW_FEED <LATEST/NEWEST> <LIMIT>: Menampilkan feed dari pengguna yang diikuti (urutan dan batas tampilan opsional).
SEARCH_USER <PREFIX>: Mencari user berdasarkan prefix.SEARCH_POST <PREFIX>: Mencari judul post berdasarkan prefix.SEARCH_SUBGRODDIT <PREFIX>: Mencari nama Subgroddit berdasarkan prefix.
FRIEND_RECOMMENDATION: Memberikan rekomendasi user untuk di-follow.
Content Moderation: Membatasi penggunaan kata-kata yang bersifat negatif.Data Security: Hashing dan Enkripsi untuk mengamankan data pengguna.Creativity: Colorful text dan ASCII art terdapat pada aplikasi.
Blueddit dirancang untuk dijalankan dengan spesifikasi berikut.
- Compiler C (GCC)
- Windows Subsystem for Linux 2
Untuk menjalankan, ikuti command berikut.
-
Pastikan sudah menginstall GCC dan WSL
make --version gcc --versionJika belum:
sudo apt update sudo apt install build-essential sudo apt install make gcc sudo apt-get upgrade -
Clone repository ini
git clone https://github.com/Labpro-22/if2110-tubes-2025-k01-g-1.git cd if2110-tubes-2025-k01-g-1 -
Compile dan jalankan kode repository
make make run