Skip to content

Full-featured online store with cart, checkout, and admin dashboard built with React .

License

Notifications You must be signed in to change notification settings

satellacodes/PETANIKU

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

40 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Petaniku 🌱

Petaniku Cover

πŸ“‹ Project Overview

Petaniku is an innovative web platform that directly connects buyers with farmers, eliminating intermediaries in the agricultural supply chain. This platform enables more transparent transactions, fairer prices, and closer relationships between consumers and producers.

Status: 🚧 Under Development (Beta) & Migrate to nextjs

✨ Key Features

πŸ‘₯ For Buyers

  • βœ… Authentication - Login/Register system
  • 🏠 Landing Page - Engaging homepage
  • πŸ“¦ Product Catalog - Display of various fresh vegetables
  • πŸ” Search & Filter - Easy product discovery
  • πŸ›’ Shopping Cart - Complete cart system
  • πŸ’¬ Real-time Chat - Direct communication with farmers via WebSocket
  • πŸ“ Checkout - Secure purchase process
  • πŸ‘€ User Profile - Manage personal data

πŸ‘¨β€πŸŒΎ For Sellers (Farmers)

  • βœ… Authentication - Farmer-specific login/register
  • πŸ“Š Product CRUD - Manage vegetable listings (Create, Read, Update, Delete)
  • πŸ’¬ Real-time Chat - Respond to buyer messages
  • πŸ”” Notifications - Receive real-time alerts
  • πŸ‘€ Farmer Profile - Display farmer information
  • πŸ“ˆ Dashboard - Manage products and orders

πŸ› οΈ Technology Stack

Frontend

  • NextJs - JavaScript Framework
  • React - JavaScript library for UI
  • TypeScript - Type safety and developer experience
  • Tailwind CSS - Utility-first CSS framework
  • Framer Motion - Smooth animations
  • React Router DOM - Client-side navigation
  • Axios - HTTP client

Backend

  • Express.js - Node.js framework
  • PostgreSQL - Relational database
  • Sequelize - ORM for PostgreSQL
  • WebSocket - Real-time communication
  • Multer - File upload handling
  • bcryptjs - Password encryption
  • CORS - Cross-origin resource sharing

Deployment & Infrastructure

  • Docker - Containerization
  • Docker Compose - Multi-container orchestration
  • Alibaba Cloud - Cloud hosting
  • CentOS - Server operating system

πŸš€ Installation & Running the Project

Prerequisites

  • Node.js (v16 or newer)
  • Docker & Docker Compose
  • PostgreSQL (if running without Docker)
  • npm or yarn

1. Clone Repository

git clone https://github.com/satellacodes/petaniku.git
cd petaniku

2. Backend Setup

cd backend
cp .env.example .env
# Edit .env with your database configuration
npm install
npm run dev

3. Frontend Setup

cd frontend
npm install
npm start

4. Using Docker (Recommended)

# From root project
docker-compose up --build

Application will be available at:

πŸ“ Project Structure

petaniku/
β”œβ”€β”€ frontend/                 # React TypeScript frontend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/      # Reusable components
β”‚   β”‚   β”œβ”€β”€ pages/          # Application pages
β”‚   β”‚   β”œβ”€β”€ services/       # API calls
β”‚   β”‚   β”œβ”€β”€ types/          # TypeScript definitions
β”‚   β”‚   └── utils/          # Utility functions
β”‚   β”œβ”€β”€ public/
β”‚   └── package.json
β”œβ”€β”€ backend/                  # Express.js backend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ controllers/    # Logic controllers
β”‚   β”‚   β”œβ”€β”€ models/         # Database models
β”‚   β”‚   β”œβ”€β”€ routes/         # API routes
β”‚   β”‚   β”œβ”€β”€ middleware/     # Custom middleware
β”‚   β”‚   └── utils/          # Utility functions
β”‚   └── package.json
β”œβ”€β”€ docker-compose.yml       # Docker configuration
β”œβ”€β”€ database/                # Database scripts
β”œβ”€β”€ assets/                  # Images and assets
└── README.md

🎯 Available Pages

  1. Home - Landing page with platform information
  2. About - About Petaniku and our mission
  3. Product List - Product catalog with filters
  4. Product Detail - Complete product details
  5. Profile - User profile (buyer/farmer)
  6. Farmer Profile - Specialized farmer profile
  7. Cart - Shopping cart
  8. Checkout - Payment process
  9. Chat - Real-time chat room
  10. Farmer Dashboard - Manage products (CRUD)
  11. 404 Not Found - Error page

πŸ“¦ Package Publishing

Beta Version

PetaniKu Web App v0.1.0-beta
- Frontend Package: @petaniku/web
- Backend Package: @petaniku/api

NPM Packages

{
  "frontend": {
    "name": "@petaniku/web",
    "version": "0.1.0-beta",
    "private": true
  },
  "backend": {
    "name": "@petaniku/api",
    "version": "0.1.0-beta",
    "private": true
  }
}

πŸ”„ Releases

Beta Releases

  • v0.1.0-beta - Initial release with basic features
  • v0.2.0-beta - WebSocket chat & notifications addition
  • v0.3.0-beta - Product CRUD for farmers

🀝 Contributing

We welcome contributions! Please read CONTRIBUTING.md for a complete guide on how to contribute to this project.

How to Contribute

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/featurename)
  3. Commit your changes (git commit -m 'Add feature X')
  4. Push to the branch (git push origin feature/featurename)
  5. Create a Pull Request

πŸ› Reporting Bugs

If you find a bug, please open an [.github/ISSUE_TEMPLATE/bug_report.md] with the provided template.

πŸ“„ License

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

πŸ“ž Contact

Petaniku Development Team

πŸ™ Acknowledgments

Thank you to all contributors and parties who have supported the development of Petaniku. May this platform help Indonesian farmers and provide better access to fresh agricultural products.


Note: This project is under active development. Features and documentation may change over time.


Built with ❀️ for Indonesian farmers

About

Full-featured online store with cart, checkout, and admin dashboard built with React .

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published