This project is a Facebook-like social network built with Go (backend) and with Next.JS (frontend) to simulate a real-world social networking experience. It features user authentication with sessions and cookies.
The core functionalities include:
- Followers: Users can follow/unfollow each other with requests to follow private profiles.
- Profiles: Users can set their profile as public or private. Profiles showcase user activity, pictures, and followers.
- Posts: Users can create and interact with posts, including text and media, with privacy settings ranging from public to only followers.
- Groups: Users can create and join groups, post within them, and manage group events with attendance/RSVP options.
- Chats: Real-time private messaging and group chats powered by Websockets, including emoji support.
- Notifications: Users receive notifications for follow requests, group invitations, likes and comments.
We used SQLite for the database. The project uses Docker, with separate containers for the backend and frontend.
Project done by Kurban Ramazanov, Toomas Vooglaid and Daniela Burnaz.
See project description.
Steps:
git clone https://github.com/QQrban/network.gitcd networkdocker compose up- Go to
http://localhost:3000 - Register or login to one of example accounts:
tom,kurb,nipi,dani,denzel,bruce,george,nick,alice,tina,janja,tanya,krystina,fedor,emily,emma,albert,richard,max,lee,vlad,maximilian,elisabeth,paul. All have emails with pattern<name>@kood.eeand passwordzaq12wsx. All belong to some group. Defined groups are:Developers,Climbers,Actors,Musicians,Physicists,Saints,Politicians. But of course you can define your own. - Have fun.
- To remove containers:
docker compose down. To remove also images, usedocker compose down --rmi all -v.
Frontend was developed from scratch by Kurban and helped by Daniela after she joined our team. Backend was adapted by Toomas from the previous work of @tammiktanar et al.

