Giter VIP home page Giter VIP logo

core's Introduction

siminov

=================================================== Build Status Gitter chat NPM version Documentation

Siminov is a open source framework which allows you to easily build your mobile apps without worrying about data storage and backend communication.

Core is an Object/Relational Mapping solution for all different environments - (Android - Java, iOS - Objective-C|Swift, Windows - C#, OS X - Objective-C|Swift). It maps data from an object model representation to a relational data table representation (and visa versa).

Core not only takes care of the mapping from model classes to database tables (and from Model data types to SQL data types), but also provides data query and retrieval facilities.

Get Started

Get the source

git clone git://github.com/siminov/core.git

Features

1. Easy Configuration

Siminov provides a easy set of defined descriptors which can be broadly classified as

|- ApplicationDescriptor.xml 
|- DatabaseDescriptor.xml
|- LibraryDescriptor.xml
|- EntityDescriptor.xml
2. Handle Application Initialization

All resources required by application are created and managed by siminov core. (Eg: Creating Database, Deploying Application).

3. Handle Multiple Schema's

It also supports multiple schema's if required by application.

4. Events Notifier

It provides event notifiers which gets triggered based on particular action

Eaxmple: 
|- Siminov Initialized
|- Siminov Stopped
|- Database Created and Dropped
|- Table Create and Dropped
|- Index Created and Dropped
5. Database API's
|- Database Create and Drop
|- Table Create and Drop
|- Index Create and Drop
|- Fetch
|- Save
|- Update
|- Save Or Update
|- Delete
6. Aggregation API's
|- Count
|- Average
|- Sum
|- Total
|- Minimum
|- Maximum
|- Group Concat
7. Database Transaction API's
|- Begin Transaction
|- Commit Transaction
|- End Transaction
8. Database Encryption (SQLCipher)

Data Secuirty plays important role when we talk about database. It protect your database from desctructive forces and the unwanted actions of unauthorized users.

Siminov provides implementation for SQLCipher to protect application database from any unauthorized users.

9. Handling Libraries

A library project is a development project that holds shared source code and resources. Other application projects can reference the library project and, at build time, include its compiled sources in their build files.

Siminov provides mechanism to configure Core for your library projects.

LICENSE

SIMINOV FRAMEWORK

Copyright [2014-2016] [Siminov Software Solution LLP|[email protected]]

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

core's People

Contributors

gitter-badger avatar prscx avatar simply-innovative avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

core's Issues

Improve descriptor parsing

Hi,
can you improve descriptor parser to work properly with space and newline symbols?
For example now this code (formatted via Exlipse formatter on save):

<property name="version" >
1
</property>

causes
java.lang.NumberFormatException: Invalid long: " "

P.S. GitHub removed some additional spaces but you can enable on save xml formatting in Eclipse to see what I'm talking about.

Can't save boolean value.

I'm using annotations to do ORM.
Here is my small test class:

@Table(tableName = "PAK_TABLE")
@Indexes({ @Index(name = "PAK_INDEX_BASED_ON_LOGIN", unique = true, value = { @IndexColumn(column = "LOGIN") }), })
public class PAK extends Database {
    @Column(columnName = "LOGIN", properties = {
            @ColumnProperty(name = ColumnProperty.PRIMARY_KEY, value = "true"),
            @ColumnProperty(name = ColumnProperty.UNIQUE, value = "true") })
    private String login;
    @Column(columnName = "ACTIVATED")
    private boolean activated;

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public boolean getActivated() {
        return activated;
    }

    public void setActivated(boolean activated) {
        this.activated = activated;
    }
}

the issue is that even if I explicitly set "activated" to true and save or update PAK object after I fetch this object by key it'll have activated = false. While with login field everything is ok.

I'm using siminov orm v0.9.2 beta.

ManyToOne Relationships have to be set before inserting?

Maybe I'm doing this wrong, but is there a way to define a relationship as optional?

I have a class "Product" referencing a class "Category" in a ManyToOne relationship, but I can not insert an instance of class "Product" without setting a "Category" to this "Product" instance first.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.