Skip to content

Urumuri-Organisation/rwanda-artisan-ecommerce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 

Repository files navigation

Local Artisans E-Commerce Platform

Empowering Rwandan artisans through digital commerce, secure payments, and accessible online marketplaces.

Project Status License Frontend Backend Database


Table of Contents


Introduction

The Local Artisans E-Commerce Platform is a digital marketplace designed to support and promote local artisans in Rwanda. The platform enables artisans to create online stores, showcase handcrafted products, manage inventory, receive payments, and connect with customers both locally and internationally.

The project aims to address challenges faced by artisans who often rely on traditional markets with limited visibility and sales opportunities.


Problem Statement

Many talented artisans face the following challenges:

  • Limited access to online marketplaces
  • Lack of digital marketing skills
  • Difficulty managing inventory
  • Restricted customer reach
  • Limited access to secure online payment systems
  • High costs of creating and maintaining e-commerce websites

As a result, many artisans struggle to expand their businesses and increase income.


Solution Overview

This platform provides:

✅ Dedicated digital storefronts for artisans

✅ Product catalog management

✅ Secure payment processing

✅ Inventory tracking

✅ Order management

✅ Customer reviews and ratings

✅ Mobile-friendly user experience

✅ Educational resources for digital literacy

By centralizing these services into one platform, artisans can focus on creating products while the system handles the digital business operations.


Project Goals

Primary Goals

  • Enable artisans to sell products online
  • Increase product visibility nationally and internationally
  • Simplify inventory management
  • Support secure online transactions
  • Improve artisans' digital literacy

Secondary Goals

  • Create employment opportunities
  • Promote Rwandan culture and craftsmanship
  • Support economic growth through digital commerce
  • Build a scalable platform for future expansion

Key Features

Artisan Features

Store Management

  • Create artisan profiles
  • Manage store information
  • Upload product images
  • Update product details

Inventory Management

  • Track product quantities
  • Receive low-stock notifications
  • Monitor product availability

Sales Dashboard

  • View orders
  • Monitor revenue
  • Analyze product performance

Customer Features

Product Discovery

  • Browse products by category
  • Search products
  • Filter products
  • View artisan profiles

Shopping Experience

  • Add products to cart
  • Checkout securely
  • Track orders
  • Save favorite products

Reviews & Ratings

  • Leave reviews
  • Rate products
  • Share feedback

Administration Features

  • User management
  • Product moderation
  • Payment monitoring
  • Order oversight
  • Analytics dashboard
  • System reporting

System Architecture

The platform follows a modular architecture based on modern software engineering principles.

┌─────────────────┐
│    Frontend     │
│    Vue.js SPA   │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ REST API Layer  │
│ Express.js      │
└────────┬────────┘
         │
 ┌───────┴────────┐
 ▼                ▼
MySQL         File Storage
Database      Product Images

Technology Stack

Frontend

Technology Purpose
Vue.js User Interface
Vue Router Routing
Axios API Requests
Pinia/Vuex State Management
Bootstrap/Tailwind Styling

Backend

Technology Purpose
Node.js Runtime Environment
Express.js REST API
JWT Authentication
Multer File Uploads
Bcrypt Password Hashing

Database

Technology Purpose
MySQL Relational Database
MongoDB (Future) NoSQL Migration

Project Structure

Frontend Structure

src/
│
├── assets/
│   ├── images/
│   ├── styles/
│   └── icons/
│
├── components/
│   ├── Navbar.vue
│   ├── ProductCard.vue
│   ├── Footer.vue
│   └── Cart.vue
│
├── views/
│   ├── Home.vue
│   ├── Products.vue
│   ├── ProductDetails.vue
│   ├── Cart.vue
│   ├── Checkout.vue
│   └── Dashboard.vue
│
├── router/
│   └── index.js
│
├── services/
│   └── api.js
│
├── store/
│   └── index.js
│
├── App.vue
└── main.js

Backend Structure

server/
│
├── config/
│   └── db.js
│
├── controllers/
│   ├── authController.js
│   ├── productController.js
│   ├── orderController.js
│   └── paymentController.js
│
├── middleware/
│   ├── authMiddleware.js
│   ├── roleMiddleware.js
│   └── errorHandler.js
│
├── models/
│   ├── User.js
│   ├── Product.js
│   ├── Order.js
│   └── Payment.js
│
├── routes/
│   ├── authRoutes.js
│   ├── productRoutes.js
│   ├── orderRoutes.js
│   └── paymentRoutes.js
│
├── uploads/
│
├── utils/
│
├── app.js
└── server.js

API Design

Authentication

POST /api/auth/register
POST /api/auth/login
GET  /api/auth/profile

Products

GET    /api/products
GET    /api/products/:id
POST   /api/products
PUT    /api/products/:id
DELETE /api/products/:id

Orders

GET    /api/orders
POST   /api/orders
GET    /api/orders/:id

🚀 Installation Guide

Clone Repository

git clone https://github.com/yourusername/local-artisans-platform.git
cd local-artisans-platform

Install Backend Dependencies

cd server
npm install

Install Frontend Dependencies

cd ../frontend
npm install

Configure Environment Variables

Create a .env file:

PORT=5000

DB_HOST=localhost
DB_USER=root
DB_PASSWORD=password
DB_NAME=artisan_store

JWT_SECRET=your_secret_key

Start Backend

npm run dev

Start Frontend

npm run serve

Development Roadmap

Phase 1 — Planning & Design

  • Requirements gathering
  • UI/UX wireframes
  • Database design

Phase 2 — Backend Development

  • Authentication
  • Product APIs
  • Order APIs
  • Payment integration

Phase 3 — Frontend Development

  • Landing page
  • Product pages
  • Shopping cart
  • Checkout system

Phase 4 — Testing

  • Unit testing
  • API testing
  • User acceptance testing

Phase 5 — Deployment

  • Cloud hosting
  • Domain configuration
  • SSL setup

Testing Strategy

Unit Testing

  • Controller testing
  • Utility testing

Integration Testing

  • API endpoint validation
  • Database operations

User Acceptance Testing

  • Artisan workflows
  • Customer purchase workflows

Security Considerations

  • JWT Authentication
  • Password hashing with Bcrypt
  • Role-based access control
  • Input validation
  • SQL injection prevention
  • HTTPS communication
  • Secure file uploads
  • Environment variable protection

Future Enhancements

  • Mobile Application
  • AI-powered product recommendations
  • Multi-language support
  • Advanced analytics dashboard
  • International shipping integration
  • Mobile Money integration
  • Stripe & PayPal integration
  • Real-time order tracking
  • Chat system between customers and artisans

Contributing

Contributions are welcome.

  1. Fork the repository
  2. Create a feature branch
git checkout -b feature/new-feature
  1. Commit changes
git commit -m "Add new feature"
  1. Push changes
git push origin feature/new-feature
  1. Open a Pull Request

License

This project is licensed under the MIT License.


Author

Project: Local Artisans E-Commerce Platform

Purpose: Academic Research, Community Development, and Digital Transformation for Local Artisans in Rwanda.

Vision: To create a sustainable digital marketplace that promotes local craftsmanship, economic inclusion, and technological empowerment.

About

The Local Artisans E-Commerce Platform is a digital marketplace designed to support and promote local artisans in Rwanda. The platform enables artisans to create online stores, showcase handcrafted products, manage inventory, receive payments, and connect with customers both locally and internationally.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages