RoloBox is my capstone project during my study in UWL, it has been moved offline after I completed my project presentation. If you would like to see the demo, go to Bilibili.
The project has been divided into three parts:
This repository is the back end of RoloBox, written with NodeJS/express.
RoloBox is an application that allows users to manage a list of contacts while supporting a photo-based matching feature so that users can upload images of their contacts and, more importantly, identify those contacts at a later time by taking a photo of a room or gathering with their phone. Once a person is labeled with contact information in a photo, they will later be recognized and automatically labeled when appearing in another photo.
- log in, log out, and manage my contact list.
- store images of groups and individuals in such a way that they can be easily accessible while remaining secure.
- associate portrait images with contact information.
- take a picture of a group or individual and have all individuals automatically recognized or labeled as not being in my contact list.
- filter my contacts by gender, age range or distinguishing face features.
- see all photos related to a certain contact.
- edit my own contact information.
- other users as friends.
- messages to my friends directly in the app.
see rolobox-angular and rolobox-flutter for UI design
Layered Resources
Resources | Layer Path |
---|---|
User | /users/{userId} |
Image | /users/{userId}/images/{imageId} |
Group | /users/{userId}/groups/{groupId} |
Contact | /users/{userId}/groups/{groupId}/contacts/{contactId} |
Face | /users/{userId}/groups/{groupId}/contacts/{contactId}/faces/{faceId} |
Friend | /users/{userId}/friends/{friendId} |
Message | /users/{userId}/friends/{friendId}/messages/{messageId} |
HTTP Methods
- GET for retrieve
- PUT for update
- POST for create
- DELETE for delete
AWS
- S3 for image storage
- Rekognition for face indexing, detection and recognition
- Firebase ML kit for real time face detection in mobile application
- Image cropping, rotation and compression.
Security Consideration
- Authorization and authentication support
- Session management
- XSS and CSRF protection