https://github.com/juliusmarkwei/swift-send
the swift sender application simplifies sms messaging for digital marketers and businesses
https://github.com/juliusmarkwei/swift-send
authentication backend database django jwt-auth rest-api sms swagger-ui
Last synced: about 1 month ago
JSON representation
the swift sender application simplifies sms messaging for digital marketers and businesses
- Host: GitHub
- URL: https://github.com/juliusmarkwei/swift-send
- Owner: juliusmarkwei
- License: other
- Created: 2024-03-19T14:23:13.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-08T02:31:42.000Z (about 2 years ago)
- Last Synced: 2025-10-24T18:45:10.965Z (8 months ago)
- Topics: authentication, backend, database, django, jwt-auth, rest-api, sms, swagger-ui
- Language: JavaScript
- Homepage: https://api-swift-send.koyeb.app
- Size: 5.01 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# SwiftSend API - SMS Platform for Digital Marketers
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/
```
2. #### Install all the neccessary packages/dependencies
```
pip install -r requirements.txt
```
3. #### 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
```
3. #### 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
```
4. #### 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.