Skip to content

Ajao-Victor/CodeAlpha_folConnect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Welcome to folConnect! 

Hey there! Thanks for checking out folConnect, a fun and easy-to-use video conferencing app that brings people together for real-time collaboration. Whether you’re catching up with friends, brainstorming with your team, or sharing ideas, folConnect has got you covered with video calls, a shared whiteboard, file sharing, and more. Built with love using Node.js, Express, Socket.IO, and WebRTC, it’s a lightweight yet powerful tool to connect folks seamlessly. What’s folConnect All About? 🌟 folConnect is your go-to platform for creating and joining virtual rooms where you can:

Video & Audio Chat: See and hear each other with smooth, real-time video and audio. Create & Share Rooms: Generate unique room IDs and share links (like yourapp.com/room/abc123) to invite others. Collaborate on a Whiteboard: Sketch ideas together in a shared canvas. Share Files: Upload and share files with everyone in the room. Screen Sharing: Show your screen to present or demo something cool. Secure Sign-In: Sign up and log in with email and password, protected by JWT authentication.

It’s perfect for casual hangouts, remote work, or creative sessions, and it’s super easy to get started! Getting Started Locally 🖥️ Want to run folConnect on your machine? Here’s how to set it up in a few simple steps. Prerequisites

Node.js (v16 or higher): Download here. Git: To clone the repo. A terminal (macOS/Linux Terminal or Windows Command Prompt). A modern browser (Chrome, Firefox, etc.).

Installation

Clone the Repository: git clone https://github.com/yourusername/folconnect.git cd folconnect

Install Dependencies: npm install

Set Up Environment Variables:Create a .env file in the root directory: echo "JWT_SECRET=$(openssl rand -hex 32)" > .env echo "PORT=8080" >> .env

Create Uploads Directory (for file sharing): mkdir -p server/Uploads chmod 755 server/Uploads

Generate SSL Certificates (for local HTTPS): mkdir -p server/cert cd server/cert openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.cert -days 365 -nodes -subj "/CN=localhost" cd ../..

Start the App: npm run dev

You’ll see: Server running on https://localhost:8080.

Open in Browser:Visit https://localhost:8080 (accept the self-signed certificate warning). Sign up, log in, create a room, and invite someone to join!

Folder Structure

client/: Frontend files (index.html, style.css, app.js). server/: Backend files (server.js, auth.js, Uploads/ for files). .env: Environment variables (don’t commit this!). package.json: Dependencies and scripts.

Deploying to Render ☁️ Ready to share folConnect with the world? Here’s how to deploy it on Render so anyone can join your rooms via a public URL.

Push to GitHub:

Initialize a Git repo:git init echo "node_modules/" > .gitignore echo ".env" >> .gitignore echo "server/cert/" >> .gitignore echo "server/Uploads/" >> .gitignore git add . git commit -m "Ready for deployment"

Create a GitHub repo named folconnect and push:git remote add origin https://github.com/yourusername/folconnect.git git branch -M main git push -u origin main

Set Up Render:

Sign in at render.com. Click “New” > “Web Service” and connect your folconnect GitHub repo. Configure: Name: folconnect (e.g., folconnect.onrender.com). Environment: Node. Branch: main. Build Command: npm install Start Command: npm start

Add environment variable: JWT_SECRET: Run openssl rand -hex 32 and paste the output.

Click “Create Web Service”.

Test It Out:

Once deployed, visit https://folconnect.onrender.com. Create a room and share the link (e.g., https://folconnect.onrender.com/room/room-abc12345). Test video calls, whiteboard, and file sharing across devices.

Note: Render’s free tier may sleep after inactivity, causing a brief delay on first load. For production, consider a paid plan. Tips for Production 🌍

Add a TURN Server: Improve WebRTC connectivity by adding a TURN server in client/app.js:iceServers: [ { urls: 'stun:stun.l.google.com:19302' }, { urls: 'turn:your-turn-server.com', username: 'user', credential: 'pass' } ]

Rate Limiting: Install express-rate-limit to prevent abuse:npm install express-rate-limit

Update server/server.js:const rateLimit = require('express-rate-limit'); app.use(rateLimit({ windowMs: 15 * 60 * 1000, max: 100 }));

Persistent Storage: Currently, user data resets on server restart. Want to add PostgreSQL? Let me know!

Contributing 

Love folConnect and want to make it even better? Contributions are super welcome! Here’s how to get involved:

Fork the repo on GitHub. Create a branch: git checkout -b your-feature. Make your changes and commit: git commit -m "Add cool feature". Push: git push origin your-feature. Open a Pull Request on GitHub.

Ideas for contributions:

Add chat messaging. Improve UI with animations. Support more file types for sharing.

Troubleshooting 🛠

Local Server Errors: Check npm run dev logs and ensure .env is set. WebRTC Issues: Ensure camera/mic permissions are granted and test with a TURN server. Render Deployment Fails: Check Render logs and verify package.json scripts. Need help? Open an issue on GitHub or share logs from:npm start

Why folConnect? 

folConnect is all about making connections simple and fun. Whether you’re hosting a virtual game night or a work meeting, it’s designed to bring people together with tools that spark creativity and collaboration. I built this app to learn and share, and I hope you enjoy using it as much as I enjoyed creating it! Happy connecting!

Author: Victor Oluwatimileyin AJAO

About

FolConnect app is an app for real time communication or video conferencing where conference room can be created and shared for co users to join the room and share files,videos,screen and even whiteboard for drawing and strategy making.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors