This repository contains a command-line messenger application written in C, developed as part of the Introduction to Computing Systems and Programming (ICSP) course at the University of Tehran. The application allows users to register, log in, create posts, like posts, and search for other users in a simple and interactive command-line interface. This project demonstrates fundamental programming concepts and data handling techniques, making it an educational assignment to enhance programming skills.
- New users can create accounts with a username and password.
- Existing users can log in with their credentials.
- Basic input validation ensures correct and secure data handling.
- Authenticated users can create posts with custom content.
- Each post is linked to the user who created it.
- Users can like posts created by others.
- The like count is updated and displayed for each post.
- Users can search for other accounts by entering a username.
- Displays basic information about the searched user.
- Provides details about logged-in users and their activity (e.g., posts, likes).
- Efficient handling of user input and storage ensures smooth interaction.
- Data structures are utilized for organizing users, posts, and interactions.
This project is organized into several modular files, each responsible for specific functionalities:
main.c
: Contains the main function and controls the program's primary flow.signup.c
: Manages user registration, ensuring valid inputs and data storage.login.c
: Handles user authentication and session management.new_post.c
: Implements the functionality for users to create new posts.like.c
: Contains logic for liking posts and updating the like counter.find_user.c
: Facilitates searching for other users by username.info.c
: Displays information about the logged-in user or searched users.input.c
: Handles user input operations for smoother interaction.scan_list.c
: Manages scanning and displaying lists of users or posts.delete.c
: Handles deletion of user accounts or posts.functions.h
andmain.h
: Header files containing function declarations and shared includes.