BCC Member's App
Jurisprudence fetishist gets off on technicality.
Link
Description
The backend server for Baguio Country Club's mobile app, one of the flagship projects of the Club during that fiscal year. My biggest project yet in terms of stability requirements and number of end-users.
Features
Static Data Endpoints
Good old CRUD.
Reservation
Create and cancel reservations for various club facilities and provide functionality to view reservation history.
Dynamically cancel expired reservations according to Club policies.
File Handling
Accept image uploads and process incoming files to optimize space, including size scaling and format conversion. Additionally, save metadata to the database.
Batch-process files regularly provided by the Finance department and accurately map each file to specific tables in the database.
Efficiently serve images and documents to users as required.
Account Management
Issue accounts and facilitate password changes as required.
Manage OTP storage, process OTP requests, and handle the dispatch of OTPs to users.
Real-time Chat
Monitor and identify active clients eligible for bidirectional data transfer, and facilitate the exchange of data using socket protocols.
Logging and Data Visualization
Store logs and various data that are used for metric analysis and report generation.
Security
Handle identity generation and authentication.
Prevent data from being accessed by unauthorized entities.
Implement industry-standard security practices such as input sanitation and rate-limiting.
Work Done
Design
Reviewed code of a rudimentary proof-of-concept server (PHP) developed by a separate duo of programmers.
Collaborated with frontend developer to create a basic backend structure, taking into consideration ideas from the existing server.
Designed database schema and created entity-relationship charts to ensure efficient data storage and relationships.
Designed the data-flow of discrete components (such as login and OTP processes), then finalized overall server architecture.
Interviews/Presentations
Conducted manager interviews to gather requirements and ensure system met business needs.
Presented the design and system functionalities to managers to gather additional feedback.
Development
Developed new server in Typescript, in concert with the frontend developer integrating the endpoints, and conducting continuous testing to ensure endpoint functionality and data integrity.
Created environments for development and testing purposes.
Created database, tables, views, and stored procedures.
Deployment
Setup DNS records and configured the newly-crafted proxy server to work with these records.
Several months after the initial deployment, redeployed server code and migrated database from old machine to a new one.
Testing
Continuous testing to ensure response and load-handling capabilities, including:
data validation and error handling
data security and access control
data backup and recovery procedures
Documentation
Documented system's design and inner workings, as well as API endpoints, to ensure transparency and ease of maintenance.
Security
Implemented security measures to adhere to industry standards and reduce potential attack vectors.
Periodically check the logs for any unusual events.
Maintenance
Monitored and maintained server upkeep, fixing bugs and addressing issues as they arise.
Update code in response to each requirement addition and policy changes.
Collaborated with Finance department to generate monthly documents for each member and process them through the database.
Tech Stack
Backend
pm2 - Backend monitoring and parallelization (via clustering).
Data Storage
Testing
mocha + supertest + chai - Endpoint testing.
grafana k6 + locust.py - Load testing
Utilities
- batch processing of files (ex. file renaming, PDF manipulation via PyMuPDF)
pino + prometheus + grafana loki - Logging, visualization, and data analysis.
sharp + multer - image processing
cron - run scheduled jobs
draw.IO - generate ERD charts
MermaidJS - generate charts to visualize data flow and backend design
Docker + Uptime Kuma - backend health monitor tool and notification service
Last updated



