Skip to content
This repository has been archived by the owner on Jul 1, 2023. It is now read-only.

Commit

Permalink
feat: first open-source commit (from v2.18.1)
Browse files Browse the repository at this point in the history
BREAKING CHANGE: Ulangi is open-source and released under GPL v3.0
  • Loading branch information
jimmyloi committed Dec 29, 2019
0 parents commit 07abea5
Show file tree
Hide file tree
Showing 5,081 changed files with 559,029 additions and 0 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
83 changes: 83 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# MacOS
.DS_Store

# Vim swap files
*.swp
# MacOS
.DS_Store

# Vim swap files
*.swp
# npm config
.npmrc

# Vim temp file
*.swp

# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# nyc test coverage
.nyc_output

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# TypeScript v1 declaration files
typings/

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env

# next.js build output
.next

# Elastic Beanstalk Files
.elasticbeanstalk/*
!.elasticbeanstalk/*.cfg.yml
!.elasticbeanstalk/*.global.yml
674 changes: 674 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

71 changes: 71 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
<h1 align="center">
<img src="https://github.com/minhloi/ulangi/blob/master/images/logo.png?raw=true"><br>
<span>Ulangi</span><br>
</h1>
<h3 align="center">
<span>Advanced open-source language learning app</span><br>
<span>with 20+ features</span><br>
</h3>

<h3 align="center">
<a href="/" alt="Written in React-Native">
<img src="https://img.shields.io/badge/framework-react--native-brightgreen" /></a>
<a href="/" alt="Release version">
<img src="https://img.shields.io/github/v/release/minhloi/ulangi" /></a>
<a href="https://github.com/minhloi/ulangi/blob/master/LICENSE" alt="License: GPL v3">
<img src="https://img.shields.io/badge/License-GPLv3-blue.svg" /></a>
<a href="https://twitter.com/UlangiApp" alt="Ulangi's Twitter">
<img src="https://img.shields.io/twitter/follow/UlangiApp?style=social" /></a>
</h3>

---
## Main apps

iOS: [https://itunes.apple.com/us/app/id1435524341?mt=8](https://itunes.apple.com/us/app/id1435524341?mt=8)

Android: [https://play.google.com/store/apps/details?id=com.ulangi](https://play.google.com/store/apps/details?id=com.ulangi)

---
## Table of contents
- [Bootstrapping](#bootstrapping)
- [Local packages](#local-packages)
- [Architecture](#architecture)
- [Dependency diagram](#dependency-diagram)

---
## Bootstrapping
This project uses monorepo architecture. To add/remove dependencies, you must manually enter/remove them inside package.json of respective packages then run ```npm run bootstrap``` in the root folder.

| Command | What it does |
| --- | --- |
| ```npm run bootstrap``` | This will install dependencies of each package; however, it does not remove existing dependencies. |
| ```npm run rebootstrap``` | This will clean up ```node_modules``` of each package and install their dependencies. |


---
## Local packages
| Package | Responsiblities |
| --- | --- |
| [@ulangi/ulangi-common](https://github.com/minhloi/ulangi/tree/master/packages/ulangi-common) | It defines all common interfaces, types, enums... so that all packages can communicate with each other. |
| [@ulangi/ulangi-action](https://github.com/minhloi/ulangi/tree/master/packages/ulangi-action) | It defines all actions that can be fired in the app. Some packages can publish and/or subscribe to these actions. |
| [@ulangi/ulangi-event](https://github.com/minhloi/ulangi/tree/master/packages/ulangi-event) | Contains EventBus and utilities for subscribing and publishisg actions (used by ```ulangi-mobile```). |
| [@ulangi/ulangi-saga](https://github.com/minhloi/ulangi/tree/master/packages/ulangi-saga) | Asynchronous tasks, such as reading from local databases and sending requests to the server are defined in this package. |
| [@ulangi/ulangi-store](https://github.com/minhloi/ulangi/tree/master/packages/ulangi-store) | This package contains all global states (such as current logged in user) and their respective reducers. |
| [@ulangi/ulangi-observable](https://github.com/minhloi/ulangi/tree/master/packages/ulangi-observable) | The packages contains all observable states that can be used in views and delegates. |
| [@ulangi/ulangi-local-database](https://github.com/minhloi/ulangi/tree/master/packages/ulangi-local-database) | Local databases used by client for offline access. |
| [@ulangi/ulangi-remote-database](https://github.com/minhloi/ulangi/tree/master/packages/ulangi-remote-database) | Remote databases used by server for data back-up. |
| [@ulangi/ulangi-mobile](https://github.com/minhloi/ulangi/tree/master/packages/ulangi-mobile) | This package contains all views (presentation logic) and delegates (business logic) of the mobile platform.|
| [@ulangi/ulangi-server](https://github.com/minhloi/ulangi/tree/master/packages/ulangi-server) | This is the [backend](https://ulangi.com) of Ulangi. |
| [@ulangi/ulangi-dictionary](https://github.com/minhloi/ulangi/tree/master/packages/ulangi-dictionary) | Used to connect with dictionary server. |
| [@ulangi/ulangi-library](https://github.com/minhloi/ulangi/tree/master/packages/ulangi-library) | Used to connect with library server. |
| [@ulangi/ulangi-script](https://github.com/minhloi/ulangi/tree/master/packages/ulangi-script) | It contains all useful CLIs and scripts for development and maintenance. |
| [@ulangi/ulangi-data](https://github.com/minhloi/ulangi/tree/master/packages/ulangi-data) | It contains curated flashcards. |
| [@ulangi/ulangi-google-sheets](https://github.com/minhloi/ulangi/tree/master/packages/ulangi-google-sheets) | Ulangi Sheets add-on published in G Suite Marketplace. |

---
## Architecture
![Ulangi's Architecture](/images/architecture.png)

---
## Dependency Diagram
![Ulangi's Dependency Diagram](/images/dependency-diagram.png)
7 changes: 7 additions & 0 deletions copyright.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/*
* Copyright (c) Minh Loi.
*
* This file is part of Ulangi which is released under GPL v3.0.
* See LICENSE or go to https://www.gnu.org/licenses/gpl-3.0.txt
*/

Binary file added images/architecture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/dependency-diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
20 changes: 20 additions & 0 deletions lerna.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"packages": [
"packages/*"
],
"version": "2.18.1",
"scripts": {
"prebootstrap": "echo \"test\""
},
"command": {
"version": {
"conventionalCommits": true,
"allowBranch": "master",
"message": "chore(release): publish %s"
}
},
"ignoreChanges": [
"*.md",
"packages/ulangi-data"
]
}
Loading

0 comments on commit 07abea5

Please sign in to comment.