DEV Community

Matteo Bianchi
Matteo Bianchi

Posted on

RENT! e-commerce, submission for Atlas Hackathon

What I built

I have created an e-commerce that allows people to rent articles related to technology. The user can choose the number of days for which to rent one or more items. Since I don't want to bore you too much, I made a video of about 6 minutes for a quick overview:

Category Submission:

Search No More

App Link

Not hosted yet

RENT Project MongoDB Atlas Hackathon

The RENT project is an e-commerce where the user can rent products, previously uploaded by the website admin.
Youtube Video

Installation

  1. You need to clone this repository on your machine:
    git clone git@github.com:MB337/RENT-Project-MongoDB-Atlas-Hackathon.git
    
  2. Add .env file to your project and set it like this:
    COMPOSE_PROJECT_NAME=mongodb-hackathon
    MONGODB_URI=<YOUR-MONGODB-PROJECT-URI&gt
    
  3. Your MongoDB Database should look like this
    |ecommerce
    ---products
    ---stats
    ---report
    
  4. If you have Docker
    docker-compose up
    
    Else (note that you'll need to export env variables):
    python3 app.py
    

Tools/Modules

Those are MongoDB services and modules or tool that I used:

  • Flask: micro web framework written in Python.
  • Atlas Search: Atlas Search provides options for several kinds of text analyzers, score-based results ranking, and a rich query language.
  • Pymongo: Python distribution containing tools for working with MongoDB.
  • Chart.js: an open source JavaScript library for creating interactive and animated charts on web pages.
  • Axios: Axios is a promise-based HTTP Client for…

Screenshots

Description

You can install this project and run it with docker by following the instructions on my github.
The site contains an "Admin" section reachable at "/admin" which will contain data regarding the website: sales data that can be viewed on a graph, proposals for new products, section to add a new product, section to modify / delete a product. The website also offers the possibility to search for a product thanks to Atlas Search. Product data will be saved on MongoDB via pymongo as follows:

{
    _id: "id",
    category: "category",
    prodName: "name",
    desc: "description",
    price: "price",
    isHomepage: "Is it in Homepage?",
    isHomepageCarousel: "Is it in Homepage Carousel?",
    isCategoryCarousel: "Is it in Homepage?",
    image: "image-link",
    watch: "In progess..."
}
Enter fullscreen mode Exit fullscreen mode

Modules or tool that I used:

  • Flask: micro web framework written in Python.
  • Atlas Search: Atlas Search provides options for several kinds of text analyzers, score-based results ranking, and a rich query language.
  • Pymongo: Python distribution containing tools for working with MongoDB.
  • Chart.js: an open source JavaScript library for creating interactive and animated charts on web pages.
  • Axios: Axios is a promise-based HTTP Client for node.js and the browser.
  • Bootstrap 5: Bootstrap is a free and open-source CSS framework directed at responsive, mobile-first front-end web development.

Link to Source Code

RENT Project MongoDB Atlas Hackathon

The RENT project is an e-commerce where the user can rent products, previously uploaded by the website admin.
Youtube Video

Installation

  1. You need to clone this repository on your machine:
    git clone git@github.com:MB337/RENT-Project-MongoDB-Atlas-Hackathon.git
    
  2. Add .env file to your project and set it like this:
    COMPOSE_PROJECT_NAME=mongodb-hackathon
    MONGODB_URI=<YOUR-MONGODB-PROJECT-URI&gt
    
  3. Your MongoDB Database should look like this
    |ecommerce
    ---products
    ---stats
    ---report
    
  4. If you have Docker
    docker-compose up
    
    Else (note that you'll need to export env variables):
    python3 app.py
    

Tools/Modules

Those are MongoDB services and modules or tool that I used:

  • Flask: micro web framework written in Python.
  • Atlas Search: Atlas Search provides options for several kinds of text analyzers, score-based results ranking, and a rich query language.
  • Pymongo: Python distribution containing tools for working with MongoDB.
  • Chart.js: an open source JavaScript library for creating interactive and animated charts on web pages.
  • Axios: Axios is a promise-based HTTP Client for…

Permissive License

Background

I was interested in discovering the new features of MongoDB, I come from SQL-type databases so it was an experience that enriched me

How I built it

I learned a lot from this competition, especially about using nosql databases

Top comments (0)