Code Monkey home page Code Monkey logo

getcement's Introduction

Getcement

..get cement cheap and fast!

Introduction

Getcement is a mobile application designed to streamline the cement distribution process. It enables users to easily place cement orders, track deliveries, and view transaction history. The app is developed using Next.js ( React framework) and it offers a user-friendly interface. The app was deployed using Vercel. commit

screenshot

Final project blog article: [Solving Nigeria cement distribution challenges with Getcement App] https://www.linkedin.com/pulse/solving-nigeria-cement-distribution-challenges-getcement-obah-sylva%3FtrackingId=8aBQq5UMQlKZfDmIYLK15g%253D%253D/?trackingId=8aBQq5UMQlKZfDmIYLK15g%3D%3D

Author LinkedIn:

Installation/ cloning

To clone Getcement on your computer, follow these steps:

  1. Clone the repository:

    git clone https://github.com/Sylvan452/getcement.git
    
  2. Navigate to the project directory:

    cd getcement
    
  3. Install the dependencies and run

    npm run dev
    

Usage

To use the Getcement app, follow these instructions:

  1. Open your browser:

https://getcement.vercel.app


2. Open the Getcement app on your device.

3. Sign in with your credentials or signup for a new account if you are a new user.

4. Explore the app and enjoy the seamless cement distribution experience.

## Contributing
We welcome contributions from the community to improve and enhance Getcement. If you would like to contribute, please follow these steps:

1. Fork the repository.

2. Create a new branch:

git checkout -b feature/your-idea


3. Make your changes and commit them:

git commit -m "Add your commit message here"


4. Push the changes to your branch:

git push origin feature/your-idea


5. Open a pull request and describe your changes in detail.

# The Story Behind Getcement

About Eleven (11) years ago while I was working as Special Assistant to the Chairman, Delta State Board of Internal Revenue, I decide to have another stream of income, what I referred to as a side hustle. I opened up a cement shop in Warri, Delta State, registered a company and registered as a distributor of Dangote Cement. However, these were not without challenges. Sooner, the reality and difficulty of the business set in.

Contrary to my initial understanding, I discovered that cement was not as readily available, and it passes many distribution channels to get to the end-user. Cement passes through major distributors, sub-distributors, and retailers before getting to the end-users. At each level of the distribution channel, profit margins are added which aggregately affect the high cost of cement in Nigeria. 

For the past few years, I’ve been working on how best to solve the above-listed problems.
ALX project offered me the opportunity to experiment with some of my thoughts through implementing and practising what I’ve learnt in the past 9months as a software engineering student. Getcement is therefore leveraging the power of Technology to connect the end-user directly to the producer of cement or via a one-step retailing channel to provide a solution to the issue of cement distribution in Nigeria.

# Technologies:

The Getcement app was made with Next Js, Tailwind CSS, React JS, Mapbox API, Firebase and Paystack payment API. It is modelled to look functional just like the real Uber app with both the final consumer (end-user) side and driver (retailer) side. Though due to the complexity of the project, we focused on the end-user side of this project. But we have agreed as a team to continue improving the functionality of the application even after the end of the project deadline.

We'll start by setting up our project with Next Js then move on to creating the UI with Tailwind CSS. Next, we added Mapbox API to implement the mapping feature and Paystack API for payment implementation. The project was deployed using Vercel. In the future, we'll finish up this project by integrating Node JS for the server side.

# Key Features

## OAuth via Google – By using Firebase, GetCement allows users to sign up and log in using their existing Google accounts, this help simplifies the registration process and enhances convenience.

## Responsive Layout – The app is well-built with a responsive layout for both mobile and desktop views.

## Appealing Landing Page - Our platform features an appealing and intuitive landing page that provides users with a seamless ordering experience. The landing page provides a link to the About Us page, signup and login buttons and a demo video that help new users get acquitted with the app.


## Our Most Difficult Technical Challenges
One of the challenging technical issues I encountered while working on the GetCement project was implementing real-time coordination between users to facilitate efficient delivery and pickup of cement orders. The goal was to provide a seamless experience for users by allowing them to track the location of delivery trucks and coordinate their locations in real time.

## Situation:
GetCement aimed to optimize the delivery process by implementing a real-time coordination system. Users needed to be able to track the progress of their orders, view the location of delivery trucks on a map, and coordinate their locations with the delivery team to ensure smooth and timely deliveries.

Task:
My task was to design and implement a real-time coordination system that would enable users to track delivery trucks and share their coordinates for efficient order delivery.
Action:
To address this challenge, I followed the following steps:
1. Researched and evaluated different technologies and APIs suitable for real-time location tracking and coordination. After careful consideration, I chose to use Mapbox API for a real-time messaging system.
2. Designed the system architecture, including the server-side infrastructure and client-side components.
3. Integrated the Mapbox API into the front end of GetCement to display the live location of delivery trucks and user locations on a map.
4. Developed client-side components using JavaScript to establish a persistent connection for real-time updates.
5. Implemented functionality for users to share their coordinates with the delivery team and receive updates on the progress of their orders.
6. Conducted thorough testing to ensure the system's reliability, accuracy, and responsiveness in updating and sharing location data.
Result:
The implementation of the real-time coordination system proved to be successful. Users were able to track the location of delivery trucks in real-time, view their location on the map, and coordinate efficiently with the delivery team for order pickups.
By overcoming the challenges associated with implementing real-time coordination, I showcased my ability to integrate external APIs, design scalable server-client communication, and ensure the accuracy and responsiveness of location tracking.


getcement's People

Contributors

sylvan452 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.