Skip to content

A community web application for students to build profiles, publish technical blogs, and interact with other developers through likes and comments.

License

Notifications You must be signed in to change notification settings

LinuxCampusClubSJCE/Commit31-OSS4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Commit31 Banner

Commit31-OSS4

A community web application for students to build profiles, publish technical blogs, and interact with other developers through likes and comments.

πŸš€ Student Developer Platform

The Student Developer Platform is a full-stack web application where students can build their developer identity, publish technical blogs, and interact with other developers in a collaborative and open environment.

This platform promotes learning in public, knowledge sharing, and beginner-friendly open-source contributions.


🌟 Core Features

πŸ‘€ User Features

  • User registration & login (JWT authentication)
  • Secure password hashing using bcrypt
  • Create and edit developer profile
  • Add bio, skills, and project links
  • View other developers' profiles

πŸ“ Blog System

  • Create blog posts
  • Edit and delete your own posts
  • View all published posts
  • View individual post details
  • Display author information on each post
  • Timestamp for posts

πŸ’¬ Interaction System

  • Comment on blog posts
  • Delete your own comments
  • Like / Unlike posts
  • View total likes count per post

πŸ” Authentication & Security

  • JWT-based authentication
  • Protected routes (only logged-in users can post/comment)
  • Password encryption with bcrypt
  • Environment variable protection (.env)

🎨 Frontend Features

  • Responsive UI (Tailwind CSS)
  • Clean blog feed layout
  • Developer profile page
  • Routing with React Router
  • API integration with Axios
  • Form validation
  • Modern UI structure

πŸ—„ Backend Features

  • RESTful API architecture
  • PostgreSQL relational database
  • Structured folder architecture
  • Modular routes & controllers
  • Environment-based configuration

πŸ— Tech Stack

Frontend

  • React (JavaScript)
  • Tailwind CSS
  • Axios
  • React Router

Backend

  • Express.js
  • PostgreSQL
  • JWT Authentication
  • bcrypt

πŸ“ Project Structure

Commit31-OSS4/
β”‚
β”œβ”€β”€ frontend/                      # Frontend (React)
β”‚   β”œβ”€β”€ public/
β”‚   β”‚   └── index.html
β”‚   β”‚
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ assets/              # Images, icons
β”‚   β”‚   β”œβ”€β”€ components/          # Reusable UI components
β”‚   β”‚   β”‚   β”œβ”€β”€ Navbar.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Footer.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ PostCard.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ ProtectedRoute.jsx
β”‚   β”‚   β”‚   └── Loader.jsx
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ pages/               # Page-level components
β”‚   β”‚   β”‚   β”œβ”€β”€ Home.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Login.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Register.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ BlogFeed.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ BlogDetails.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Profile.jsx
β”‚   β”‚   β”‚   └── CreatePost.jsx
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ context/             # Global state
β”‚   β”‚   β”‚   └── AuthContext.jsx
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ services/            # API calls
β”‚   β”‚   β”‚   β”œβ”€β”€ authService.js
β”‚   β”‚   β”‚   β”œβ”€β”€ postService.js
β”‚   β”‚   β”‚   └── commentService.js
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ utils/               # Helper functions
β”‚   β”‚   β”‚   └── formatDate.js
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ App.jsx
β”‚   β”‚   β”œβ”€β”€ main.jsx
β”‚   β”‚   └── index.css
β”‚   β”‚
β”‚   β”œβ”€β”€ .env
β”‚   β”œβ”€β”€ package.json
β”‚   └── tailwind.config.js
β”‚
β”‚
β”œβ”€β”€ backend/                      # Backend (Express)
β”‚   β”œβ”€β”€ config/
β”‚   β”‚   └── db.js                # PostgreSQL connection
β”‚   β”‚
β”‚   β”œβ”€β”€ controllers/
β”‚   β”‚   β”œβ”€β”€ authController.js
β”‚   β”‚   β”œβ”€β”€ postController.js
β”‚   β”‚   β”œβ”€β”€ commentController.js
β”‚   β”‚   └── profileController.js
β”‚   β”‚
β”‚   β”œβ”€β”€ middleware/
β”‚   β”‚   β”œβ”€β”€ authMiddleware.js
β”‚   β”‚   └── errorMiddleware.js
β”‚   β”‚
β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”œβ”€β”€ userModel.js
β”‚   β”‚   β”œβ”€β”€ postModel.js
β”‚   β”‚   β”œβ”€β”€ commentModel.js
β”‚   β”‚   └── likeModel.js
β”‚   β”‚
β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”œβ”€β”€ authRoutes.js
β”‚   β”‚   β”œβ”€β”€ postRoutes.js
β”‚   β”‚   β”œβ”€β”€ commentRoutes.js
β”‚   β”‚   └── profileRoutes.js
β”‚   β”‚
β”‚   β”œβ”€β”€ utils/
β”‚   β”‚   └── generateToken.js
β”‚   β”‚
β”‚   β”œβ”€β”€ .env
β”‚   β”œβ”€β”€ server.js
β”‚   └── package.json
β”‚
β”‚
β”œβ”€β”€ README.md
β”œβ”€β”€ .gitignore
└── package.json (optional root config)

βš™οΈ Local Development Setup

1️⃣ Clone the Repository

git clone https://github.com/YOUR_USERNAME/Commit31-OSS4.git
cd Commit31-OSS4

2️⃣ Backend Setup

cd backend
npm install

Create a .env file inside the backend folder:

PORT=5000
DATABASE_URL=postgresql://postgres:yourpassword@localhost:5432/Commit31-OSS4
JWT_SECRET=supersecretkey

Run backend:

npm run dev

Backend runs at:

http://localhost:5000

3️⃣ Frontend Setup

Open new terminal:

cd frontend
npm install
npm run dev

Frontend runs at:

http://localhost:5173

🐘 Database Setup

Install PostgreSQL and create database:

CREATE DATABASE Commit31-OSS4;

🀝 Contributing (Beginner Friendly)

We welcome new open-source contributors πŸŽ‰

Steps to Contribute:

  1. Fork this repository
  2. Clone your fork
  3. Create a new feature branch
  4. Make your changes
  5. Commit your changes
  6. Push to your fork
  7. Create a Pull Request

Example Contribution Commands

git checkout -b feature/add-dark-mode
git add .
git commit -m "Added dark mode feature"
git push origin feature/add-dark-mode

πŸ“Œ Contribution Guidelines

  • Do not push directly to main
  • Create feature branches
  • Use meaningful commit messages
  • Follow existing folder structure
  • Test before submitting PR

πŸ›£ Future Improvements (Roadmap)

  • πŸŒ™ Dark mode
  • πŸ”” Notifications system
  • πŸ‘₯ Follow other developers
  • 🏷 Tags & categories
  • πŸ“ Markdown editor
  • πŸ” Search & filtering
  • πŸ“Š User dashboard
  • πŸš€ Deployment guide

πŸ‘¨β€πŸ’» Author

Vansh Rathore


⭐ Support

If you like this project:

  • ⭐ Star the repository
  • 🍴 Fork it
  • 🀝 Contribute

About

A community web application for students to build profiles, publish technical blogs, and interact with other developers through likes and comments.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors