#Forum
A comprehensive web forum allowing users to communicate, share, and interact through posts and comments.
This project is a web forum developed in Go that enables users to register, log in, publish messages, comment, and interact with content through likes and dislikes. The forum uses SQLite as a database and is containerized with Docker for easy deployment.
-
Authentication
- User registration (email, username, password)
- Login/logout functionality
- User session management with cookies
-
Communication
- Post creation (restricted to logged-in users)
- Adding comments to posts (restricted to logged-in users)
- Viewing posts and comments (open to all)
-
Categorization
- Association of one or more categories to each post
- Filtering posts by category
-
Interactions
- Like and dislike system for posts and comments
- Like/dislike counter visible to all users
-
Filtering
- Filter by categories
- Filter by created posts (logged-in users only)
- Filter by liked posts (logged-in users only)
This project is complemented by additional modules in separate repositories:
- Forum Security: Advanced security features
- Forum Advanced Features: Additional functionality
- Forum Image Upload: Image upload management
- Forum authentification: authentification system
- Backend: Go
- Database: SQLite
- Containerization: Docker
- Frontend: HTML, CSS, Vanilla JavaScript (no frameworks)
- Security: bcrypt for password encryption, UUID for sessions
- Go installed on your machine
- Docker installed on your machine
- Clone the repository
git clone https://github.com/your-username/forum.git
cd forum- Build the Docker image
docker build -t forum .- Launch the container
docker run -p 8080:8080 forum- Access the forum in your browser at:
http://localhost:8080
The SQLite database includes the following tables:
- Users
- Posts
- Comments
- Categories
- Post_Categories (relationship between posts and categories)
- Likes (likes on posts and comments)
To run the unit tests:
go test ./...This project was done with :
- @Louis Sebastian Malack
- @Serigne Saliou Mbacke Mbaye Contributions are welcome! Feel free to open an issue or submit a pull request.