Welcome to the Forum Project! This README provides an overview of the project's structure and functionalities. The goal is to build a feature-rich forum using a combination of SQLite, Golang, JavaScript, HTML, and CSS. This project involves implementing registration and login systems, post and comment management, and private messaging. Below are detailed instructions on how to set up and contribute to the project.
- SQLite : Database management
- Golang : Backend services and WebSocket handling
- JavaScript : Frontend event handling and WebSocket communication
- HTML : Single-page layout
- CSS : Styling and layout customization
- Registration :
- Users must provide the following information:
- Nickname
- Age
- Gender
- First Name
- Last Name
- Password
- Login :
- Users can log in using either their nickname or e-mail combined with the password.
- Logout :
- Users can log out from any page within the forum.
- Creating Posts :
- Users can create new posts with categories.
- Commenting on Posts :
- Users can comment on posts. Comments are visible only when a user clicks on a post.
- Feed Display :
- Posts are displayed in a feed format.
- Chat Section :
- Displays online/offline users, organized by the last message sent.
- For new users, organize alphabetically.
- Sending Messages :
- Users can send messages to those who are online.
- A chat section should always be visible.
- Viewing and Loading Messages :
- When clicking on a user, past messages are loaded.
- Implement throttling/debouncing to manage scrolling.
- Message Format :
- Each message displays:
- Date sent
- Sender's username
- Messages should be updated in real-time using WebSockets.
- Go (Golang) installed
- SQLite database setup
- A modern web browser
- Clone the Repository :
- Run the Application :
- Start the Go server:
bash scripts/start.sh - Open your web browser and navigate to
http://localhost:8080
Login: TestUser1@gmail.com Password: !QAZ@WSX3edc
Login: TestUser2@gmail.com Password: !QAZ@WSX3edc
- HTML : Use a single HTML file to manage the layout.
- CSS : Customize styles in the CSS file to improve UI/UX.
- JavaScript : Handle all frontend events and WebSocket interactions in the JavaScript file.
- Golang : Implement backend logic and WebSocket handling in the Go files.
izinko, lya