DEV Community

Cover image for 😂I Missed the Hackathon Deadline, But Solved a Bigger Problem: Finding the Right Project Partner.
Hala Kabir
Hala Kabir

Posted on

😂I Missed the Hackathon Deadline, But Solved a Bigger Problem: Finding the Right Project Partner.

You’ve got ideas.
You’ve got skills.
You’ve got motivation.

But somehow… you’re still building alone.

So I decided to build Projura — an app designed to help developers, designers, and builders find the right project partners, not just random teammates.

And while building it, I learned how real-world collaboration apps actually work.

Let’s break it down 👇

🤝 What Is Projura?

Projura is a full-stack web app where users can:

✅ Create a profile
✅ Add skills
✅ Post project ideas
✅ Match with collaborators based on skills
✅ Stop building alone

No fake networking.
No endless DMs.
Just skill-based collaboration.

🧠 The Core Idea: Matching Humans Like Code

Projura doesn’t match people randomly.

It uses structured data:

User skills

Project requirements

That’s it.

Because software doesn’t understand vibes — it understands logic.

👤 Step 1: Creating a User Profile (Backend Logic)

When a user fills the signup form, the frontend sends data to the backend.

Frontend (JavaScript)

async function createUser() {
  const res = await fetch("http://127.0.0.1:5000/users", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      name: name.value,
      bio: bio.value,
      skills: skills.value
    })
  });

  const data = await res.json();
  userId = data.id;
}

Enter fullscreen mode Exit fullscreen mode

Simple.
Clear.
No magic.

Backend (Flask API)

@app.route("/users", methods=["POST"])
def create_user():
    data = request.json
    user = User(
        name=data["name"],
        bio=data["bio"],
        skills=data["skills"]
    )
    db.session.add(user)
    db.session.commit()
    return jsonify({"id": user.id})

Enter fullscreen mode Exit fullscreen mode

This is where Projura officially knows you exist.

🧩 Step 2: The User Model (Where Data Lives)

Every app needs a brain.
For Projura, it’s the database model.


class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100))
    bio = db.Column(db.Text)
    skills = db.Column(db.Text)
Enter fullscreen mode Exit fullscreen mode

Skills are stored as comma-separated values:

#required skills
"python, flask, frontend"
Enter fullscreen mode Exit fullscreen mode

Easy to store.
Easy to compare.

📌 Step 3: Projects Need Requirements

A project without requirements is just a dream.

Projura forces clarity.

class Project(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(150))
    description = db.Column(db.Text)
    required_skills = db.Column(db.Text)


Enter fullscreen mode Exit fullscreen mode

Now projects speak the same language as users:
skills.

🔍 Step 4: Matching Logic (The Smart Part)

This is the heart of Projura.

We compare skills using similarity matching.

from difflib import SequenceMatcher

def skill_match(a, b):
    return SequenceMatcher(None, a, b).ratio()

Enter fullscreen mode Exit fullscreen mode

Then we check:

User skills vs project skills

Higher similarity = better match

This turns collaboration into data-driven decisions.

🌐 Step 5: Frontend + Backend Must Agree

If the backend works but the frontend doesn’t —
the app is broken.

Projura taught me this fast 😅

fetch(`${API}/projects/${userId}`)
  .then(res => res.json())
  .then(data => {
    projects.innerHTML = data.map(p =>
      `<li>${p.title}</li>`
    ).join("");
  });
Enter fullscreen mode Exit fullscreen mode

APIs are contracts.
Break them — nothing works.

⚠️ Step 6: Debugging = Real Learning

Some real problems I hit:

❌ Button clicks but nothing happens
❌ API called but returns 500
❌ Database schema mismatch
❌ CORS blocking requests

Each error forced me to learn:

How databases don’t auto-update

Why frontend + backend must match

Why logs matter

Why “it runs” ≠ “it works”

This is where theory becomes engineering.

🚀 Why Projura Matters

Projura solves a real problem:

Beginners struggle to find teammates

Skilled people build alone

Great ideas die early

Projura connects people based on what they can actually build together.

🧪 Want to Level It Up?

Possible future upgrades:

🔥 Real-time chat
🔥 GitHub integration
🔥 Recommendation scoring
🔥 Project timelines
🔥 Team dashboards

Each feature pushes Projura closer to production.

🧠 Final Thought

Projura taught me something important:

Apps aren’t about code.
They’re about turning human problems into logic.

If you can design systems that help people connect meaningfully,
you’re not just coding —
you’re building impact.

#coders language 
print("Happy building 🚀💻 ")
Enter fullscreen mode Exit fullscreen mode

Top comments (2)

Collapse
 
halakabir234hub profile image
Hala Kabir

PROJURA is officially on github :3

Some comments may only be visible to logged-in visitors. Sign in to view all comments.