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;