Version: 1.0.0
Built With: FastAPI, Pydantic, SQLAlchemy
Post statuses with customizable visibility settings — designed for dynamic interactions and privacy control.
- Dynamic visibility updates after posting
- JWT-based Authentication
- User Registration & Login
- Contact Management
- Create, View, Update, and Delete Statuses
- Track Views per Status
- Modular structure (routers, schemas, models, crud)
- Granular Visibility: Public | My Contacts | Limited | My contacts except
- FastAPI for high-performance APIs
- Pydantic for data validation
- SQLAlchemy for ORM
- JWT for secure token-based auth
# Clone the repository
git clone https://github.com/EbenTheGreat/Dynamic-Status-Visibility-API.git
cd Dynamic-Status-Visibility-API
# Create a virtual environment (optional but recommended)
python -m venv venv
source venv/bin/activate # On Linux/Mac
venv\Scripts\activate # On Windows
# Install dependencies
pip install -r requirements.txt
# Run the FastAPI development server
uvicorn app.main:app --reload
POST /users
{
"username": "eben",
"password": "securepass"
}
POST /login
{
"username": "zoe",
"password": "zoe123"
}
{
"content": "My new status",
"visibility": "limited",
"allowed_user_ids": [2, 3],
"excluded_user_ids": []
}
| Endpoint | Description |
|---|---|
POST /users/ |
Register a new user |
POST /login |
Login and receive JWT token |
POST /contacts |
Add a contact |
DELETE /contacts |
Delete a contact |
POST /status |
Create a status |
GET /status/all |
Get all statuses |
GET /status/my/active |
Get your active statuses |
PUT /status/{status_id} |
Update status visibility |
DELETE /status/{status_id} |
Delete a status |
POST /status/{status_id}/views |
Register a view |
GET /status/{status_id}/views |
Get view count |
Auto-generated Swagger UI available at:
Tijani Ebenezer (Eben_the_Great)
Built out of a need to innovate the way status and stories are being shared.
We’re building towards a more dynamic, user-centric experience in v2. Here's what’s coming:
| Feature | Description |
|---|---|
| Filtering & Search | Search statuses by date, visibility, or tags |
| Real-time Updates | WebSocket or SSE for live status updates and view tracking |
| Contact Approval System | Mutual contact approval system (like friend requests) |
| Media Attachments | Add images or videos to status posts |
| Tagging System | Use hashtags and @mentions to group or reference other users |
| GraphQL Support | Add support for flexible, client-driven API querying |
| RBAC / Roles | Role-based access control: Admin, Moderator, and User |
| Notifications | Real-time (in-app) or email alerts for views and interactions |
I am actively looking for collaborators for v2! Whether you're a backend dev, API nerd, or just interested — contributions are welcome🙌
# Fork the repo and clone
git checkout -b feature/<your-feature-name>
# Make your changes
git commit -m "Added new feature: X"
# Push and open a PR
git push origin feature/<your-feature-name>