Coder Social home page Coder Social logo

longbowou / rwanda Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 638 KB

Rwanda is an innovative digital platform serving as a marketplace for both sellers and buyers, offering a seamless experience for trading digital products.

Home Page: https://rwanda.danielblandes.com

License: MIT License

Dockerfile 0.09% Python 67.70% HTML 32.21%

rwanda's Introduction

Rwanda App

Rwanda is an innovative digital platform serving as a marketplace for both sellers and buyers, offering a seamless experience for trading digital products. The name Rwanda is a code name inspired by the country Rwanda in Africa, this project aims to foster economic growth and empowerment by facilitating transactions in the digital realm. Sellers can showcase their digital creations, while buyers can explore a diverse range of products, creating a dynamic marketplace that celebrates creativity and entrepreneurship. With Rwanda, the digital landscape becomes more accessible, connecting individuals and businesses worldwide in a thriving ecosystem of trade and innovation.

Online Demo

Feel free to try it out. Check the credentials below.

Account

https://rwanda.danielblandes.com

Admin

https://admin.rwanda.danielblandes.com

App (Backend)

Key Features

  • Seller Portfolio: Allow sellers to showcase their portfolio, previous work.

  • Service Categories and Filters: Organize services into categories and provide filters to allow users to easily find what they're looking for based on their preferences and requirements.

  • Service Selection: Users should be able to browse through a variety of services offered by different sellers, with detailed descriptions, pricing, and seller ratings.

  • Order Placement: Allow users to easily place orders for services they wish to avail. This should include options for customization, if applicable.

  • Secure Messaging: Implement a built-in chat feature with online status that enables seamless communication between the buyer and the seller. This ensures clarity regarding the service requirements, delivery details, and any other queries.

  • Delivery Tracking: Provide users with real-time updates on the status of their service delivery.

  • Payment Escrow: Utilize an escrow system to hold the payment securely until the service is successfully delivered. This builds trust between the buyer and the seller, as the seller knows they will only receive payment upon completion of the service.

  • Seller Verification: Implement a verification process for sellers to ensure they are legitimate and trustworthy. This can involve identity verification and verifying the quality of their services.

  • Resolve Disputes feature empowers administrators to efficiently and fairly handle any conflicts or disputes that may arise between buyers and sellers on the platform. It provides a structured process for reviewing, investigating, and reaching resolutions for disputed transactions.

  • Multi-platform Accessibility: Ensure the app is accessible across various devices and platforms, including smartphones, tablets, and desktops, to maximize user convenience.

  • Development & Deployment: Rwanda utilizes Docker containers to streamline its development and deployment processes, bolstering the efficiency and consistency of its backend and frontend applications.

Architecture

The application architecture is split in three different parts: app(backend), frontend for seller and buyer accounts, and frontend for admins

App (Backend With Django Framework)

The backend of the application serves as the central component responsible for managing data, handling business logic, and facilitating communication between the frontend interfaces and the database. Here's a breakdown of its key components

  • Server: Built on top of a high-level Python web framework Django.

  • Database: Utilized the World's most advanced open source relational database PostgreSQL to store user information, service details, orders, and chat messages.

  • API Endpoint: Take advantage of Graphql using the package Graphene Django to handle operations such as user authentication, service listing, order placement, messaging between users, and payment processing.

  • Authentication: Implement strong and secure authentication and authorization mechanisms using Django GraphQL JWT witch is a JSON Web Token (JWT) authentication for Graphene Django.

  • Websockets: Integrate Websockets for real-time communication between buyers and sellers during the chat exchange using Django Channels based WebSocket for Graphene Django.

  • Payment Gateway Integration: Integrate CinetPay a mobile money payment gateway to facilitate secure payment transactions between buyers and sellers.

  • Background Jobs: Implement background job processing using Celery and Redis to handle tasks such as sending notifications, updating order status, and processing payments asynchronously.

Account (Vue Framework)

The frontend interfaces for sellers and buyers provide user-friendly interfaces for browsing services, placing orders, and managing their accounts. Here are the technical details:

  • Framework: Develop the frontend using a modern JavaScript framework Vue.js 2 to create dynamic and responsive user interfaces.

  • Component Architecture: Organize the frontend application into reusable components for modularity and maintainability.

  • State Management: Utilize state management Vuex to manage application state, including user authentication, service listings, and order status.

  • API Integration: Communicate with the backend API endpoints using asynchronous HTTP requests using Vue Apollo 3 to fetch service data, submit orders, and exchange messages.

  • Real-time Updates: Implement real-time updates using Websockets to display new messages and order status changes without the need for manual page refreshes.

  • Responsive Design: Ensure the frontend interfaces are optimized for various screen sizes and devices using responsive design principles and CSS frameworks Bootstrap 4.

Admin (Vue Framework)

The frontend interface for admins provides the necessary tools for managing users, services, orders, and resolving disputes. Here are the technical aspects:

  • Framework: Develop the frontend using a modern JavaScript framework Vue.js 2 to create dynamic and responsive user interfaces.

  • Component Architecture: Organize the frontend application into reusable components for modularity and maintainability.

  • State Management: Utilize state management Vuex to manage application state, including user authentication, disputes details.

  • API Integration: Communicate with the backend API endpoints using asynchronous HTTP requests using Vue Apollo 3 to fetch service data, submit orders, and exchange messages.

  • Real-time Updates: Implement real-time updates using Websockets to display new messages and order status changes without the need for manual page refreshes.

  • Responsive Design: Ensure the frontend interfaces are optimized for various screen sizes and devices using responsive design principles and CSS frameworks Bootstrap 4.

Requirements

Setup

This repository is composed of three git submodules for each part.

  • Clone the repository
git clone [email protected]:rwanda/rwanda-platform.git --recurse-submodules
  • Build the application
docker compose build
  • Update environments variable
cp app/.env.example app/.env && cp account/.env.example account/.env && cp admin/.env.example admin/.env

App

  • Make migrations
docker compose run --rm app python manage.py makemigrations
  • Run migrations
docker compose run --rm app python manage.py migrate
  • Seed data
docker compose run --rm app python manage.py seed
  • Create superuser
docker compose run --rm app python manage.py longbowou root root

Run

docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d app

Where is the application running?

What's next ?

Check other parts on Rwanda Platform repository

License

This project is licensed under the MIT License.

rwanda's People

Contributors

longbowou avatar estherkangbiete avatar

Stargazers

Hien Dinh avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.