Skip to content

tanishxdev/DevFreebies

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

12 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

DevFreebies ๐Ÿ“ฆ

A community-driven platform for developers to discover, share, and save free developer tools and resources.

๐ŸŒŸ Overview

DevFreebies solves the problem of losing valuable developer tools in endless bookmarks, tabs, or notes. It provides a centralized platform where developers can:

  • Discover free developer tools
  • Save tools to personal collections
  • Submit new resources
  • Upvote useful resources
  • Build a personal library of tools

๐Ÿ—๏ธ Project Structure

DevFreebies/
โ”œโ”€โ”€ DevFreebies-backend/          # Node.js + Express API
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ config/              # Configuration files
โ”‚   โ”‚   โ”œโ”€โ”€ controllers/         # Route controllers
โ”‚   โ”‚   โ”œโ”€โ”€ middleware/          # Authentication & validation
โ”‚   โ”‚   โ”œโ”€โ”€ models/              # MongoDB schemas
โ”‚   โ”‚   โ”œโ”€โ”€ routes/              # API routes
โ”‚   โ”‚   โ”œโ”€โ”€ utils/               # Helper functions
โ”‚   โ”‚   โ”œโ”€โ”€ app.js               # Express app setup
โ”‚   โ”‚   โ””โ”€โ”€ server.js            # Server entry point
โ”‚   โ”œโ”€โ”€ .env                    # Environment variables
โ”‚   โ”œโ”€โ”€ package.json
โ”‚   โ””โ”€โ”€ README.md
โ”œโ”€โ”€ DevFreebies-frontend/        # React + Vite + Tailwind
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ assets/              # Static assets
โ”‚   โ”‚   โ”œโ”€โ”€ components/          # React components
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ layout/         # Layout components
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ pages/          # Page components
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ sections/       # Section components
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ui/             # UI components
โ”‚   โ”‚   โ”œโ”€โ”€ context/            # React context providers
โ”‚   โ”‚   โ”œโ”€โ”€ services/           # API service layer
โ”‚   โ”‚   โ”œโ”€โ”€ App.jsx             # Main App component
โ”‚   โ”‚   โ””โ”€โ”€ main.jsx            # Entry point
โ”‚   โ”œโ”€โ”€ public/                 # Public assets
โ”‚   โ”œโ”€โ”€ .env                   # Environment variables
โ”‚   โ”œโ”€โ”€ package.json
โ”‚   โ””โ”€โ”€ vite.config.js
โ”œโ”€โ”€ .git/                       # Git repository
โ”œโ”€โ”€ CODE_OF_CONDUCT.md
โ”œโ”€โ”€ CONTRIBUTING.md
โ”œโ”€โ”€ LICENSE
โ””โ”€โ”€ README.md (this file)

๐Ÿš€ Quick Start

Prerequisites

  • Node.js (v18+)
  • MongoDB (or MongoDB Atlas)
  • Git

Backend Setup

  1. Navigate to backend directory:
cd DevFreebies-backend
  1. Install dependencies:
npm install
  1. Configure environment variables:
cp .env.example .env
# Edit .env with your configuration
  1. Start the development server:
npm run dev

Frontend Setup

  1. Navigate to frontend directory:
cd DevFreebies-frontend
  1. Install dependencies:
npm install
  1. Configure environment variables:
cp .env.example .env
# Edit .env with your API URL
  1. Start the development server:
npm run dev

๐Ÿ“ Git Repository Details

This repository contains a complete monorepo structure with:

Git Configuration

  • Main branches: main (production), dev (development)
  • Hooks: All standard Git hooks available as samples
  • Remotes: Connected to origin remote

Object Database

The .git/objects/ directory contains all Git objects (commits, trees, blobs) organized by SHA-1 hash prefix. The repository includes:

  • 80+ Git objects
  • Pack files for efficient storage
  • Reference logs for branch tracking

Key Git Files

  • HEAD: Points to current branch
  • index: Staging area
  • config: Repository configuration
  • packed-refs: Packed references for efficiency

๐Ÿ› ๏ธ Technology Stack

Backend

  • Runtime: Node.js
  • Framework: Express.js
  • Database: MongoDB + Mongoose
  • Authentication: JWT (JSON Web Tokens)
  • Validation: Express Validator
  • Environment: Dotenv

Frontend

  • Framework: React.js
  • Build Tool: Vite
  • Styling: Tailwind CSS
  • Routing: React Router
  • HTTP Client: Axios
  • State Management: React Context API

๐Ÿ”ง Core Features

Authentication & Authorization

  • User registration and login
  • JWT-based authentication
  • Protected routes and API endpoints
  • Role-based access control (user/admin)

Resource Management

  • CRUD operations for developer resources
  • Category and tag-based organization
  • Featured and verified resource flags
  • Upvote system for community validation
  • Bookmarking for personal collections

User Experience

  • Responsive design with Tailwind CSS
  • Dashboard for personal activity tracking
  • Search and filtering capabilities
  • Pagination for resource listings
  • Real-time feedback on user actions

๐Ÿ“Š Data Models

User

{
  _id: ObjectId,
  username: String,
  email: String,
  passwordHash: String,
  avatar: String,
  role: String, // 'user' or 'admin'
  bookmarks: [ResourceId],
  contributionScore: Number
}

Resource

{
  _id: ObjectId,
  title: String,
  description: String,
  url: String,
  image: String,
  category: String,
  tags: [String],
  submittedBy: UserId,
  upvotes: Number,
  visits: Number,
  isFeatured: Boolean,
  isVerified: Boolean,
  createdAt: Date
}

๐Ÿ”Œ API Endpoints

Authentication

  • POST /api/auth/register - Register new user
  • POST /api/auth/login - User login
  • GET /api/auth/me - Get current user

Resources

  • GET /api/resources - List resources (with pagination/filtering)
  • GET /api/resources/:id - Get single resource
  • POST /api/resources - Create resource (protected)
  • PUT /api/resources/:id - Update resource (protected)
  • DELETE /api/resources/:id - Delete resource (protected)
  • POST /api/resources/:id/upvote - Upvote resource (protected)

Users

  • GET /api/users/bookmarks - Get user bookmarks (protected)
  • POST /api/users/bookmark/:id - Bookmark resource (protected)

๐Ÿ—‚๏ธ Git Workflow

Branch Strategy

  • main: Production-ready code
  • dev: Development branch
  • feature/*: Feature branches
  • fix/*: Bug fix branches

Commit Convention

We follow conventional commits:

  • feat: New features
  • fix: Bug fixes
  • docs: Documentation changes
  • style: Code style changes
  • refactor: Code refactoring
  • test: Test-related changes
  • chore: Maintenance tasks

Development Workflow

  1. Create feature branch from dev:

    git checkout -b feature/your-feature-name dev
  2. Make changes and commit:

    git add .
    git commit -m "feat: add new resource submission form"
  3. Push to remote:

    git push origin feature/your-feature-name
  4. Create Pull Request to dev branch

๐Ÿค Contributing

Please read our CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • All contributors who have helped shape this project
  • The open-source community for invaluable tools and libraries
  • Developers everywhere for sharing their knowledge and resources

๐ŸŽฏ Project Vision

DevFreebies aims to become the go-to platform for developers to:

  • Discover high-quality, free tools
  • Build a reputation through contributions
  • Create personal tool collections
  • Connect with other developers through shared interests

๐Ÿ”ฎ Future Enhancements

Planned features include:

  • Advanced search with filtering
  • User profiles and leaderboards
  • Collections and custom lists
  • API for third-party integrations
  • Browser extensions for quick saving
  • Weekly newsletter with top resources

๐Ÿ“ž Support

For support, questions, or feedback:

  1. Check the FAQ
  2. Review existing issues
  3. Submit a new issue with details

Happy coding! ๐Ÿ’ปโœจ

About

A community-driven platform for discovering, saving, and sharing free developer tools and resources.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors