This project is read-only.


  • About the project
  • Project description
  • Installation instructions
  • Writer's remarks (Please read)

SqlA project

SqlA is a system designed for scheduling and management of automatic reports and tasks, for many clients and multiple databases.

The system consists a central server that receives requests from clients and performs the tasks on times.
For each task the server queries the relevant databases, performs analyze on the results and sends them to customers.

Each task can have a several jobs on a multiple databases.
The results of a task can be analyzed by one or more of the following widgets (can be easily expanded) :
  • Don't send a report if the results are empty.
  • Don't send a report if the results are equals to the last results of this specific job.
  • Send report only with the diff between the current results and the last results.
  • Ignore specific fields when comparing results.
  • Ignore specific fields on the report.
The reporting can be performed by sending a mail (can set SMTP server or just interfacing to OUTLOOK) and/or by saving a file that contains the results.

Clients have their own UI (SqlAClient) for sending new tasks and management them.
The Communication between SqlAServer and SqlAClients performed by an HTTP server and by using shared auxiliary department, named sqCore.

Project description

The project includes three solutions:
  • SqlAServer - The server and the UI for the server's admin.
    • Simple HTTP Server
  • SqlAClient - The UI for the clients.
    • Simple HTTP Client
  • sqCore - Auxiliary solution that shared in both: SqlAServer and SqlAClients, and enables a common language between them.

System design:

Installation instructions

NOTE: You can not run this code directly!

The code assumes that MongoDB installed on your machine.
You can install a copy of MongoDB from 10gen website, and configure the project's settings to the correct Mongo directory, OR just download and install one of SqlA's releases, for auto config.

Writer's remarks
  1. SqlA was originally written during my military service, to help my team save time and make our repetitive actions automatic.
  2. I quickly realized that not only it does the work automatically, it also allows alerts for situations that are not known in advance. Hence, the way for SqlA to become popular outside my team was very short :)
  3. SqlA was originally written in Python. After my discharge from the service, I re-wrote it in C#, added few features and made it much more modular.
  4. This is my very first project in C#, and I learned the language and the syntax while and during the writing. So be gentle ;)
  5. I hope you'll find it usefull!


Last edited Dec 26, 2013 at 11:12 AM by Yaronn, version 29