Opinionated project architecture for Full-Stack JavaScript Applications.
About
Using JavaScript for full-stack has always been a challenge especially with architecting various pieces of the application, choosing technologies and managing devOps. This project provides a base for typical project consisting a Landing Website, Web and Mobile Applications, API service and easy deployment of these services. This project uses a microservice architecture where all individual project runs as a service (container).
A typical product (SaaS, etc.) usually consists of following services:
Landing page
Used for introducing your business to customers
Provide links to download the mobile application
Provide link to access web application
Contact page
Privacy policy page
Terms of use page
SEO friendly (should support server side rendering)
Current implementation uses RPC (Remote Procedure Call) for API endpoints (one endpoint URL, multiple operations) and can be easily replaced with REST.
Tip: use ifconfig on macOS or Linux to get your local IP address
Setup
Install dependencies: npm install
Run
iOS react-native run-ios --simulator='iPhone 8'
Android react-native run-android (connect your Android phone via USB or use already created simulator with name Mobile_-_5 by running cd ~/Library/Android/sdk/tools && ./emulator -avd Mobile_-_5)
Publish
Android
Build: cd android && ./gradlew assembleRelease && cd ...
Upload frontend/app/mobile/android/app/build/outputs/apk/release/app-release.apk to Play Store.
iOS
Build: Open frontend/app/mobile/ios/example.xcodeproj in Xcode -> Choose Generic iOS Device (top left) -> Product (top menu) -> Archive.
Upload using Archiver (will open automatically once Archive is complete)
[YOUR NAME HERE] - Feel free to contribute to the codebase by resolving any open issues, refactoring, adding new features, writing test cases or any other way to make the project better and helpful to the community. Feel free to fork and send pull requests.
请发表评论