Skip to content

the swift sender application simplifies sms messaging for digital marketers and businesses

License

Notifications You must be signed in to change notification settings

juliusmarkwei/swift-send

Repository files navigation

SwiftSend API - SMS Platform for Digital Marketers

swiftsend logo

Welcome to SwiftSend! This project is designed to provide a comprehensive platform for managing contacts, message templates, message logs, and recipient logs. SwiftSend offers a suite of features to help individuals and businesses stay connected with their contacts and streamline their messaging workflows. With intuitive API endpoints with robust functionality, my platform empowers users to:

  • Manage Contacts: Easily store, organize, and update contact information for individuals.
  • Create Templates: Craft reusable message templates to save time and ensure consistency in communication.
  • Send bult SMS to their contacts.
  • Track Message Logs: Keep a record of all sent messages, including delivery status and timestamps.
  • Resend or edit and resend an SMS from the logs.

Features

  • Contact Management: Create, update, and delete contacts.
  • Template Creation: Design customizable message templates with dynamic placeholders for personalized content.
  • Message Logging: Record details of sent messages, including content, recipients, timestamps, and delivery status.
  • Send Bulk SMS and Personalized templates to contacts at once.
  • Resend or Edit and Resend SMS from message logs.

This project serves as a task as part of my recruitment process for a Backend Engineering role. It represents an opportunity for me to showcase my skills and expertise in developing backend solutions using Django, a powerful web framework for Python.

Throughout this project, I demonstrated my proficiency in various aspects of backend development, including:

  1. Database Design and Management: Designing and implementing efficient database models to store and manage data effectively of which I used the Postgres Database from Supabase a Cloud Database Plateform

  2. API Development: I created robust APIs to facilitate communication between any SMS frontend and this backend application. Utilizing the Django and Django Rest Framework, I was able to achieve this with a few lines of code.

  3. Testing: I wrote a comprehensive tests with the Pytest-Cov library to ensure the reliability and stability of the backend codebase.

  4. Documentation: With the help of the DRF-Spectacular library, I was able to generate a clear and concise documentation to guide future developers and users of the system.

  5. Deployment: Finally, I deployed the application to Koyeb production environment, ensuring that it is secure, scalable, and accessible to end-users.

Prerequisites

    python3.10
    django
    djanfo-restframework
    docker (*optional)

Installation

  1. Clone this repository

    git clone https://github.com/juliusmarkwei/ecommerce-backend.git
    cd ecommerce-backend/
  1. Install all the neccessary packages/dependencies

    pip install -r requirements.txt
  1. Environment Variables

  • Create a .env. Inside the .env add a SECRET_KEY and your database configurations of the database of your choice. You can generate a SECRET_KEY using the following code snippet:
    from django.core.management.utils import get_random_secret_key
    print(get_random_secret_key())
  • Add the following line printed above to the .env file:
    SECRET_KEY=your_secret_key_here

    DB_HOST=your_db_host
    DB_USER=your_db_user
    DB_PASSWORD=your_db_password
    DB_NAME=your_db_name
    DB_PORT=your_db_port
    DB_ENGINE=your_db_engine

    EMAIL_BACKEND=your_email_backend
    EMAIL_HOST=your_email_host
    EMAIL_PORT=your_email_port
    EMAIL_HOST_USER=your_email_user
    EMAIL_HOST_PASSWORD=your_email_password

    AFRICASTALKING_API_KEY=your_api_key
    AFRICASTALKING_USERNAME=your_username
  1. Confguring Database Admin User

    In the root directory of the project, create a superuser to manage all the users of the application. be sure python is installed before you proceed with this stage.
    python3 manage.py createsuperuser
  1. Starting the server and Access the Application

  • Run the command below to start the application server and access the application running on a default port 8000 via http://localhost:8000.
    python3 manage.py runserver

Enjoy SwiftSend

Some challenges I face during this project's journey

  • template....

Get Involved

We welcome contributions and participation from the community to help make this e-commerce backend API even better! Whether you're looking to fix bugs, add new features, or improve documentation, your help is greatly appreciated. Here's how you can get involved:

Reporting Issues 🚩

If you encounter any bugs or issues, please report them using the Issues section of my GitHub repository. When reporting issues, please include:

  • A clear and descriptive title.
  • A detailed description of the problem, including steps to reproduce it.
  • Any relevant logs or error messages. Your environment details (e.g., Django version, DRF version, database, etc.).

Contributing Code

Contributions are welcome! If you'd like to contribute to the project, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix: git checkout -b feature-branch.
  3. Make your changes and commit them: git commit -m 'Add new feature'.
  4. Push to the branch: git push origin feature-branch.
  5. Submit a pull request with a detailed description of your changes.

About

the swift sender application simplifies sms messaging for digital marketers and businesses

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published