YARN.com is an open-source platform designed to solve the problem of preserving community stories, local wisdom, and lived experiences in a structured, collaborative way. Unlike typical social media where posts get buried over time, YARN.com allows users to create "threads" on specific topics (such as surviving floods, startup journeys, cultural traditions, etc.), and enables others to add their own "strands" (contributions) to form a rich timeline of diverse perspectives.
This platform helps communities:
- Preserve valuable stories and experiences that might otherwise be lost
- Connect people through shared experiences and wisdom
- Build collective knowledge around important topics
- Document community history and cultural practices
- MongoDB - NoSQL database for storing threads and strands
- Express.js - Backend web framework for Node.js
- React - Frontend library for building user interfaces
- Node.js - JavaScript runtime for the backend
- Mongoose - MongoDB object modeling for Node.js
- Vite - Fast build tool for React development
- Node.js (v16 or higher)
- MongoDB (local installation or MongoDB Atlas account)
- Git
-
Navigate to the backend directory:
cd backend
-
Install dependencies:
npm install
-
Create environment file:
cp .env.example .env
-
Update the
.env
file with your MongoDB connection string and port:MONGODB_URI=mongodb://localhost:27017/yarn-community-threads PORT=5000
-
Start the backend server:
npm run dev
-
Navigate to the frontend directory:
cd frontend
-
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Start the backend server (from the backend directory):
npm run dev
The backend will run on
http://localhost:5000
-
Start the frontend development server (from the frontend directory):
npm run dev
The frontend will run on
http://localhost:5173
-
Access the application at
http://localhost:5173
yarn-community-threads/
├── backend/
│ ├── models/
│ │ ├── Thread.js
│ │ └── Strand.js
│ ├── routes/
│ │ ├── threads.js
│ │ └── strands.js
│ ├── server.js
│ ├── package.json
│ └── .env.example
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── App.jsx
│ │ └── main.jsx
│ ├── package.json
│ └── index.html
├── .gitignore
└── README.md
- Thread Management: Create and view story threads on specific topics
- Strand Contributions: Add personal experiences and perspectives to existing threads
- Timeline View: See chronological progression of community stories
- Topic Tags: Organize threads by categories and themes
- Responsive Design: Works on desktop and mobile devices
Feel free to contribute to this repository by adding new features, improving documentation, fixing bugs, or enhancing UI/UX.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- New Features: User authentication, thread moderation, advanced search
- UI/UX Improvements: Better responsive design, accessibility features
- Documentation: API documentation, user guides, code comments
- Bug Fixes: Report and fix issues you encounter
- Performance: Optimization of database queries and frontend rendering
This project is licensed under the MIT License - see the LICENSE file for details.
- Project Repository: [GitHub Repository URL]
- Issues: Please report bugs and feature requests through GitHub Issues
- Discussions: Join community discussions in the GitHub Discussions section
- User authentication and profiles
- Thread moderation and reporting
- Advanced search and filtering
- Email notifications for new strands
- Mobile app development
- Integration with social media platforms
Start preserving your community's stories today with YARN.com!