Environment and Tools to create micro-web applications for PWS, Multipple and other web platforms.
Open your favorate terminal. Go to the directory where you want to add the project and run respectively the commands below.
git clone https://github.com/pws-hub/cubic-studio
cd /cubic-studio
yarn install
npm install
for those who prefere it.
At the project root, look for the file with the name .env.dev
. Remove the .dev
from the file name and it becomes your .env
file and contains the necessary environment variables to run the project.
Then run the command below to start the app
yarn start
Open your browser, enter http://localhost:12120 and there you go.
Full documentation of how to use it is upcoming, for now, enjoy playing with it.
- Session manager with Redis database
- Locale Package Storage (LPS) server
- HTTP + Socket connection server
- Routers
- UI pages
- Static assets routers
- Proxy request handler
- Custom handlers
- Core
- Cubic Package Manager (CPM)
- Cubic Universal Package (CUP) interface
- Server-side Emulator process manager
- FileSystem manager
- Generic File manager
- Git Manager
- Internal Process Manager
- Libraries
- Cubic API Request (CAR) socket channel handler
- File System Transaction (FST) socket channel handler
- Internal process Transaction (IPT) socket channel handler
-
fs
: Adaptive file system manager- Local functions
- Cloud based functions
-
path
Adaptive file system directory path manager- Local functions
- Cloud based functions
- Custom API Request handler middleware
- Custom Authentication Request handler middleware
- Customized Base64 encoder/decoder
- DTCrypt encryption library
- Shell/Bash script runner
- Segregated backend and frontend functions synchronizer (Session, store files, logs, ...)
- Cloud based requirements
- Dependencies installer
- Deployment sandbox creator
- Emulator environment: Domain, Container, Process manager
- Debug mode logger
- Local Package Storage (LPS) client
- Cubic API Request (CAR) socket client
- File System Transaction (FST) socket client
- Internal process Transaction (IPT) socket client
- Segregated backend and frontend functions synchronizer client
- Platform customization functions overrider
- Cubic Package Manager (CPM) client
- Service Process Manager (SPM)
- Project workspace Manager
- Project Sections Manager
- Single Sign-on Auth
- Github (Default)
- Multipple (Custom)
- One Profile
- Workspace
- Create and manage workspaces
- Customization
- Platform based configuration
- Auth handlers
- Request handlers
- Devices manager (Emulators)
- Themes
- Workspace layouts & views
- Platform based configuration
- workspace add-ons
- Add-ons store interface
- Install/Uninstall add-ons
- Run add-on process
- Render add-ons UI context & rules
- Shortcuts
- Dropdown & Context-Menu options
- Setup projects
- Create/update/delete project
- Setup/Sync
.cubic
environment - Maintain project
.metadata
via UI - Add/Import/Install project dependencies
- NPM packages
- CPR/CPM packages: UI component, Plugins, Libraries
- Internal store packages: UI component, fonts, icons
- Import project
- From Link
- Using Exported file
- Reading existing working directory
- Clone from git repository
- Display project in workspace by invitation
- Exports projects
- To
.cep
file - Downloadable
.zip
file - International standards:
openAPI
, ...
- To
- Share projects
- Generate share link
- Find/assign to a user
- With other workspaces
- Delete projects
- Create and manage teams
- User invitation process
- Assign/Unassign team members to projects
- Assign roles & permissions
- Publish project
- Compliance, Stability & Security checks
- CPM to CPR deployment process
- Verification certificate generator
- Update/Release settings
- Availability on store
- Activity tracking & History
- View & Edit User account
- Utilities Search
- Public repositories
- Internal store
- Find in workspace: Tools, Settings, Supports, ...
- In-build console & terminal
- Debug console & trace tracking
- Command line interface (CLI)
- Build logs
- General error logs: Info, Warning, Critial, ...
- UI alert & prompt dialog messages
- Offline & Online synchronizer
- Main UI Pages
- Home page: Authentication, Active Sessions & workspaces
- Workspace page
- Workspace details
- Manage workspace actions
- Manage team
- Manage Projects
- Supports & documentation section
- Display recents workspace activity histories
- Project page
- Baseline layout view
- SideToggles: Control layout component display (Eg. Left toggles: Menu, sidebar, ...)
- Header
- Super menu options
- Active users avatars
- Menu
- Project's name & logo
- Project specs
- Utilities access toggles: Navigation back, Add, Search, Home
- Left Sidebar
- Project directories tree
- Project element collections tree
- Project environments tree
- Project dependencies
- Footer
- Environment configuration platform name & toggle
- Workspace name & toggle
- Console toggle
- Active project specs displayable details
- Toolbar
- Static toggles
- Dynamic toggles by active add-ons
- Main Block View (By active project specs)
- Right Side Block: Add-on context display
- Open/Close control & mechanism
- Display & expensibility (Small, medium, full screen)
- Setting widget
- Search widget
- Add features widget
- Dependencies installation details widget
- Baseline layout view
- Main project Specs
- Code Editor
- Monaco Editor integration
- Load & register Grammers
- Language Server integration
- Render media files: Eg. image, video, ...
- Create & test Rest API requests
- Collection tree: Categories, Requests, Saved requests
- Environments: Global context, collection context, category context, user session context
- Request structure & input components: URL, params, variables, headers, descriptions, ...
- Import/Export collections to
.json
andopenAPI
- Proxy Server
- Test scripts support
- Test runner
- Create & test Sockets requests
- Websocket support
- Socket.io support
- TCP Socket support
- Collection tree: Categories, Requests, Saved requests
- Environments: Global context, collection context, category context, user session context
- Request structure & input components: URL, params, variables, headers, ...
- Import/Export collections to
.json
- Test scripts support
- Test runner
- Documentation generator
- Markdown supported editor integration
- Doc outlines extractor
- Illustration code editor integration
- Integrated API request display & run module
- Playgrounds embedding module
- Import/Export
README.md
files
- Create and run Unit tests
- Project roadmap & tasks manager
- Code Editor
- Internationalization (Multiple language support)
- Supported languages manifest & files
- Translation handler component
- Translator tools
- Add-ons
- Device manager
- Emulators
- Native connections
- Live collaboration
- No-code UI designer
- Git manager interface
- Device manager
Generate desktop version installable on Window, macOS, linux.
- Electron packaging setup
- Main window
- Menu options
- Preloaders
- Internal processes
- Notification system
- New update handlers
It's not a fully completed roadmap. More features will be added as implementation goes on and some aspects/sections will be much more ellaborated if the requirements or the needs change. The team will also share updates in case any major features overtaken by contributors must face some sort of change.
Feedbacks are all welcome. Kindly report any encounted Issues here and we'll be glad to work on it right away. Thank you. for those who would like to contribute, do not esitate. Create a fork of the project, send a PR and we'll get along from there. Guidelines and code of conduct for CONTRIBUTORS will be publish soon.
This software is free to use under the GNU license. See the LICENSE file for license text and copyright information.