Activiter

About

Activiter connects people through shared activities and interests. Users can create and find activity points on a map for sports, events, or meet-ups in their area. The integrated chat feature allows direct communication, making it easy to join and organize activities. Perfect for discovering new opportunities and meeting others nearby.

Technologies

logo javascript

Javascript

logo next

Next

logo mongodb

MongoDB

logo firebase

Firebase

logo socketio

SocketIO

logo scss

SCSS

screenshot activiter

Login & Sign up

Sign up and set up your profile by adding a photo, allowing you to engage with the community and showcase your identity.

The app provides a login and registration system where credentials are hashed and stored in MongoDB. Profile images are uploaded to Google Firebase, with links stored in MongoDB. Middleware and cookies are utilized to determine which page to display based on user authentication status.

How It Works

Upon logging in, users access an interactive map showcasing activity points created by others. Clicking on a point reveals event details, with a simple option to join. This opens a chat either joining an existing conversation or starting a new one to coordinate plans. Below the map, users can explore ongoing events, ensuring they stay connected and engaged with real-time activities.

This feature utilizes Google Maps API to display pins stored in the database, accessed via HTTP requests. Pin data is fetched every 15 seconds or upon re-render.

screenshot activiter
screenshot activiter

Host an Event

Easily create a new event by clicking directly on the map. This intuitive feature makes it simple to plan gatherings and connect with others in the community.

After creating the event, the corresponding data will be updated in the MongoDB database via HTTP.

Chat with Friends

The real-time chat feature allows you to communicate instantly about anything whether it's planning events, sharing updates, or just connecting.

The chat functionality operates on a Node.js server using Next.js and Socket.IO for real-time communication, with MongoDB for message storage. Users connect via WebSockets and register with a username, linking it to their socket ID. When a user sends a private message, it is stored in MongoDB and emitted to the recipient's socket.

screenshot activiter

Check out my code

logo github

github CLI: gh repo clone Tescosalat/activiterf