Social Media App

A platform for developers to share code snippets and get feedback from the community.

Project Files
Browse and edit the generated code files.
app/page.tsx
export default function HomePage() {
  return (
    <div className="container mx-auto py-10">
      <h1 className="text-3xl font-bold">Welcome to CodeShare</h1>
      <p className="mt-4 text-gray-500">
        Share your code snippets and get feedback from the community.
      </p>
    </div>
  );
}
components/CodeSnippet.tsx
interface CodeSnippetProps {
  title: string;
  code: string;
  language: string;
  author: {
    name: string;
    avatar: string;
  };
}

export function CodeSnippet({ title, code, language, author }: CodeSnippetProps) {
  return (
    <div className="rounded-lg border p-4">
      <div className="flex items-center justify-between">
        <h3 className="font-medium">{title}</h3>
        <div className="flex items-center gap-2">
          <img src={author.avatar || "/placeholder.svg"} alt={author.name} className="h-6 w-6 rounded-full" />
          <span className="text-sm text-gray-500">{author.name}</span>
        </div>
      </div>
      <pre className="mt-4 overflow-x-auto rounded bg-gray-100 p-4">
        <code className={`language-${language}`}>{code}</code>
      </pre>
    </div>
  );
}
server/routes/snippets.js
const express = require('express');
const router = express.Router();
const Snippet = require('../models/Snippet');

// Get all snippets
router.get('/', async (req, res) => {
  try {
    const snippets = await Snippet.find().sort({ createdAt: -1 });
    res.json(snippets);
  } catch (err) {
    res.status(500).json({ message: err.message });
  }
});

// Create a new snippet
router.post('/', async (req, res) => {
  const snippet = new Snippet({
    title: req.body.title,
    code: req.body.code,
    language: req.body.language,
    author: req.user._id
  });

  try {
    const newSnippet = await snippet.save();
    res.status(201).json(newSnippet);
  } catch (err) {
    res.status(400).json({ message: err.message });
  }
});

module.exports = router;