Skip to content

golani04/messaging-system

Repository files navigation

Messaging system

Deployment to Heroku

Address Messaging system

Requirements

  • gunicorn will run with heroku

  • runtime.txt: Specify python version

  • Procfile: Call command to up a server

  • requirements.txt: Show which app to install

    • Heroku don't support poetry. Run this command to export it

      poetry export --without-hashes -f requirements.txt > requirements.txt
  • heroku config:set KEY=VALUE or add in project folder on heroku

    • Set all environments variables

GIT

  • Git log as a graph: $ git log --all --decorate --oneline --graph

DB

Users

id fullname email password
int str str bcrypt

Mapper

m_id r_id
int(fk) int(fk)

Messsages

id subject body created_at is_read owner
int varchar text date bool int

API

  • Login
    • POST /auth/login JSON{email, password}
    • GET /api/messages Headers{Authoriazation: Bearer {token}}

NOTE: to test logged in users use email: janedoe@test.com or johndoe@test.com, password: password.
Postman: Call first /auth/login route it will save token and then call /api/messages route.

  • Send a new message
    • POST /api/messages JSON{sender, recipient, subject, body}
  • Show messages for a specific user
    • GET /api/messages?user_id=<id>
    • GET /api/users/<user_id>/messages
  • Show unread messages for a specific user
    • GET /api/messages?user_id=<id>&unread=1
    • GET /api/users/<user_id>/messages?unread=1
  • Read a message
    • GET /api/messages/<m_id>
    • GET /api/users/<user_id>/messages/1
  • Delete a message
    • DELETE /api/messages/<m_id>

NOTE: All messages are returned by recipient not by owner if recipient provided or user_id.

TESTS

Coverage

  • Run tests using coverage: poetry run coverage run
  • Output coverage to html: poetry run coverage html

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published