Giter VIP home page Giter VIP logo

qubic's People

Contributors

maciaszczykm avatar

Watchers

 avatar  avatar  avatar  avatar

qubic's Issues

Direct queries

It should be able to access database via queries too, not only by CRUD interface.

Splitted log files

Log files are splitted. One program execution should have one log file, no more than this.

Avoid infinite loops

If database structure contains loop it is possible for application to have one too. It cannot happen.

Cache memory

Frequently used objects could be stored in cache memory to improve performance.

Type alignment

It is needed to map Qt types to database types. Now all works based on QString type.

Final phase

Things to do:

  • Tests with multiple database schemas.
  • Alignment with generator code.
  • Code review.

Code refactoring

Code should be refactored:

  • Class hierarchy should be refactored, should be easy to extend (for example new database support).
  • Imports should be reorganized.
  • Reusable code should be present as methods.
  • At the moment classes are too big, split them where it is possible.

Relations recognition and handling

It is needed to handle with multiple types of relations (1:1, 1:N and N:N). To do it, classes will store references to objects. To store object, we need to store (if it is not already stored) its content.

Data validation

Before data will be stored in database or read from it, it should be validated. All tables should be checked with code, methods should be available, columns like ID should be available etc.

Creating objects using reflection

To load objects from database, there is a need to construct objects in Qt using reflection. To declare meta type Q_DECLARE_METATYPE macro can be used. But how about registering classes? Following code snippet should be somehow used:

qRegisterMetaType<Employee>("Employee");

More informations can be found there:

http://blog.debao.me/2013/06/qt-macro-q-declare-metatype/
http://www.qtcentre.org/threads/22126-Instantiate-objects-only-having-their-class-name
http://stackoverflow.com/questions/19503583/qt-meta-system-call-constructor-with-parameters

Properties load

Properties should use sigleton pattern, to avoid loading them from file more than one time.

Thesis

Thesis and project documentation.

Configuration

User should be able to configure connection and other stuff from configuration file or from his application code.

Mapping invocation

Currently user can use CRUD operations in his code, but there is also possibility to synchronize objects automatically. Should mapping be invokable only by user or automatically too?

Conditional search

Implement conditional search, at the moment all object from the table are loaded.

Compilation process

Instead of compiling project to .dll file, create Qubic.pri include. Create Qubic.h so user can include only one header to use whole Qubic functionallity. Add also automatic properties and libraries copy to build folder.

Advanced query functions

If we have two tables in database with 1:N relation, for example car and owner and car has info about his owner. In class car there should be method getAllOwners() or something like it to get all owners. It should be implemented also in N:N relation.

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.