All Projects → vangav → vos_whatsapp

vangav / vos_whatsapp

Licence: MIT license
vangav open source - whatsapp; generated using vangav backend:

Programming Languages

java
68154 projects - #9 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to vos whatsapp

Vos backend
vangav open source - backend; a backend generator (generates more than 90% of the code needed for big scale backend services)
Stars: ✭ 71 (+407.14%)
Mutual labels:  cassandra, scalable, backend, geometry, play-framework, exceptions, thread-pool, dispatcher
Kuzzle
Open-source Back-end, self-hostable & ready to use - Real-time, storage, advanced search - Web, Apps, Mobile, IoT -
Stars: ✭ 991 (+6978.57%)
Mutual labels:  scalable, backend
harika
Offline-, mobile-first graph note-taking app focused on performance with the knowledgebase of any scale
Stars: ✭ 111 (+692.86%)
Mutual labels:  scalable, performant
play2-sockjs
A SockJS server implementation for Play Framework.
Stars: ✭ 60 (+328.57%)
Mutual labels:  play-framework
hector
a high level client for cassandra
Stars: ✭ 51 (+264.29%)
Mutual labels:  cassandra
safe-transaction-service
Keeps track of transactions sent via Gnosis Safe contacts and confirmed transactions. It also keeps track of Ether and ERC20 token transfers to Safe contracts.
Stars: ✭ 72 (+414.29%)
Mutual labels:  backend
SeeThere
iOS app for identifying a location through the camera.
Stars: ✭ 18 (+28.57%)
Mutual labels:  geometry
play-angular-typescript.g8
A giter8 template for a Play Angular 4 Typescript application
Stars: ✭ 91 (+550%)
Mutual labels:  play-framework
fastweb
fastweb is a web-server integration solution. It based on tornado, celery, thrift.
Stars: ✭ 17 (+21.43%)
Mutual labels:  backend
cassandra4io
Asynchronous lightweight fs2 and cats.effect.IO wrapper under datastax cassandra 4.x driver with doobie-like syntax
Stars: ✭ 40 (+185.71%)
Mutual labels:  cassandra
indiepen
An independent and privacy-friendly solution to embed HTML, CSS and JS code examples
Stars: ✭ 257 (+1735.71%)
Mutual labels:  performant
MidcurveNN
Computation of Midcurve of Thin Polygons using Neural Networks
Stars: ✭ 19 (+35.71%)
Mutual labels:  geometry
cart
Simple Symfony 4 shopping cart application. App boilerplate
Stars: ✭ 18 (+28.57%)
Mutual labels:  backend
nextjs-graphql-adminpanel
Admin panel built with NextJS(Typescript), Material UI, Apollo Client & GraphQL. In the backend, Prisma 2 with Nexus and Mysql is used.
Stars: ✭ 119 (+750%)
Mutual labels:  backend
Systemizer
A system design tool that allows you to simulate data flow of distributed systems.
Stars: ✭ 1,219 (+8607.14%)
Mutual labels:  backend
amazon-keyspaces-toolkit
Docker Image /tools for working with Amazon Keyspaces.
Stars: ✭ 25 (+78.57%)
Mutual labels:  cassandra
Nestjs-Typeorm-Auth
NestJS + Typeorm codebase containing a full authentification system with roles, sessions and email verification.
Stars: ✭ 37 (+164.29%)
Mutual labels:  backend
media manager plus
Ermöglicht das Gruppieren von Media-Manager-Typen und stellt eine Frontend-API (PictureTag) bereit.
Stars: ✭ 21 (+50%)
Mutual labels:  backend
mojo.js
🦄 The Mojolicious real-time web framework for Node.js
Stars: ✭ 145 (+935.71%)
Mutual labels:  backend
paperclip
A DSL for web UI builders
Stars: ✭ 197 (+1307.14%)
Mutual labels:  backend

YouTube Play Icon on YouTube

why? whatsapp is a vangav backend template covering: service oriented architecture, worker service, multi-entry-point api, basic authentication and multi-keysapce database

whatsapp

whatsapp backend design

prerequisite

functionality

whatsapp

  • handles user signup and authentication
  • sending messages
  • fetching messages and users' info
  • dispatching analytics writing to whatsapp worker

whatsapp worker

  • handles writing analytics into the database

whatsapp analytics

  • handles fetching users' and messages' analytics

overview

  • this service is based on vangav backend's whatsapp template
  • this service has the 90+% of the vangav backend's generated code + the 10-% of the logic code needed to complete the service

try this service

  1. for first timers - follow the steps in the system requirements tutorial
  2. for first timers - follow the steps in the workspace initialization tutorial
  3. download vos_whatsapp.zip, vos_whatsapp_worker.zip and vos_whatsapp_analytics.zip projects (from the green clone or download button) inside the workspace directory created previously (my_services) and unzip them
  4. rename unzipped directories, remove the -master from their names
  5. in the terminal cd to vos_whatsapp/cassandra/cql/
  6. execute ./_start_cassandra.sh to start cassandra
  7. cd to vos_whatsapp/cassandra/cql/drop_and_create/
  8. execute the commands ./_execute_cql.sh wa_....cql to initialize the services' database tables; repeat this step for all the .cql files
  9. cd to vos_whatsapp_worker and execute ./_run.sh to start the whatsapp worker service on port 8000
  10. cd to vos_whatsapp_analytics and execute ./_run.sh 7000 to start the whatsapp analytics service on port 7000
  11. cd to vos_whatsapp and execute ./_run.sh to start the whatsapp service on port 9000
  12. from your prefered client (we recommned postman) start trying the service; refer to the features and service references sections for reference
  • at the end to stop the services: press control + d in the terminal session where each service was started in (9, 10 and 11)
  • to stop cassandra: execute ps auwx | grep cassandra to get cassandra's (pid) then kill -9 (pid) to stop cassandra

eclipse

  • follow the following steps to import the downloaded backend service in eclipse
  1. cd to the service's directory and execute the ./_eclipsify.sh script
  2. file > import > general > existing projects into workspace > next > set "select root directory" to my_services > under projects make sure that vos_calculate_sum is selected > finish
  3. double check the java version used for compiling the project: right click the project > properties > java compiler > enable project specific settings > compiler compliance level > 1.7 or 1.8

covered topics

  • generate multiple services (main + worker + analytics) to work together in a service oriented architecture
  • generate a multi-keyspace database
  • basic authentication

features

whatsapp

controller(s) feature
signup handles new users' signup using phone numbers
send message handles sending a message
get messages and get user info handles getting new messages and users' info (id, name, ...)

whatsapp analytics

controllers feature
get users count and get messages count handles fetching analytics data (total counts and count per-day)

service references

whatsapp

reference explanation
routes api routes
controllers.json api request/response's elements
wa_auth.keyspace wa_auth is the keyspace used for all authentication-related tables
wa_users.keyspace wa_users is the keyspace used for all users-info-related tables
wa_chat.keyspace wa_chat is the keyspace used for all chat-related tables
wa_blobs.keyspace wa_blobs is the keyspace used for all blobs-related tables
wa_analysis.keyspace wa_analysis is the keyspace used for all analysis-related tables
common handles controllers' common operations like authentication
controllers api implementation
wa_auth wa_auth cassandra's keyspace client
wa_users wa_users cassandra's keyspace client
wa_chat wa_chat cassandra's keyspace client
wa_blobs wa_blobs cassandra's keyspace client
wa_analysis wa_analysis cassandra's keyspace client

whatsapp analytics

reference explanation
routes api routes
controllers.json api request/response's elements
wa_analysis.keyspace wa_analysis is the keyspace used for all analysis-related tables
controllers api implementation
wa_analysis wa_analysis cassandra's keyspace client

change log

  • this section lists the 10-% code added after vangav backend generated 90+% of the code

whatsapp

file/dir change
common added common controllers' operations like authentication
controllers added the implementation of request processing logic under controller_name/HandlerControllerName.java classes and nested response json structures under controller_name/response_json packages

whatsapp analytics

file/dir change
controllers added the implementation of request processing logic under controller_name/HandlerControllerName.java classes and nested response json structures under controller_name/response_json packages

error codes

  • following are the error codes of whatsapp services

whatsapp

class code : sub_code explanation
CommonPlayHandler
300 : 1 user not signed up
300 : 2 wrong password
HandlerSignup
301 : 1 user has no password
301 : 2 wrong password
HandlerGetUserInfo
302 : 1 user not registered
302 : 2 didn't find user's info
HandlerSendMessage
303 : 1 can't send message(s) to yourself
303 : 2 message's recieving user isn't registered
HandlerGetMessages
304 : 1 didn't find message's blob (content)

whatsapp analytics

class code : sub_code explanation
HandlerGetMessagesCount
400 : 1 to-date is smaller than from-date
HandlerGetUsersCount
401 : 1 to-date is smaller than from-date

notes

share

facebook share twitter share pinterest share google plus share linkedin share

free consulting

vangav's consultant

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].