Alusus' project uses Git for source code control, and it uses Redmine for task and bug management as well as for reporting bugs and other errors. The project is developed under a Linux environment and it uses the following technologies:
Alusus' Source Code Repository
Visit the Building and Running Instructions document for details on steps to build from source code as well as external dependencies.The Identity library currently supports logging into your website using Google authentication service. We need to expand the library to add support for other providers such as:
Adding support for a new service in this library involves creating a new class similar to the Google service class.
WebPlatform currently lacks support for WebGL operations, which are used for rendering three-dimensional graphics in the browser. We need to add the necessary functions to support WebGL operations, including defining the required functions and classes and integrating them into the browser's API.
Web Sockets are used to establish a bidirectional connection between the browser and the server to enable two-way messaging. Currently, there is no support for these operations in WebPlatform, nor in the Http library that WebPlatform relies on to create the server. This project involves enabling the creation of Web Sockets in the Http library and then updating WebPlatform to enable defining functions that receive messages through the socket. This may require creating special modifiers for this purpose. The goal is to enable users to define Web Sockets in their programs in the simplest and clearest way possible.
This project aims to enable WebPlatform users to use audio capture to record sounds or create a data stream for transferring audio data (such as in voice calls).
This project aims to enable WebPlatform users to use the camera within their programs to capture images or video clips and enable the creation of a data stream for transferring visual data (such as in video calls).
This project aims to enable WebPlatform users to capture a shot or a video of the screen and enable the creation of a data stream to transfer this data when sharing the screen with other users.
The DataDog service allows users to monitor the performance of their website and provides many important metrics for those who want to monitor the performance of their server. This project aims to enable users to monitor the performance of websites developed using WebPlatform through the DataDog service, including:
The last two points may be achievable without needing any modifications to WebPlatform (by using DataDog tools that operate at the operating system level), but the first point definitely requires some modifications to WebPlatform.
Enabling users to create migrations for their tables and data in the Rows library.
Enable the use of transations in all database read and write operations. The use of transactions should remain optional.
Enable users to define relations between their data models in the class definitions. These relations allow:
Create a library to interact with MongoDB databases. Library requirements:
Adding a library to bind with TensorFlow for deep learning. The library enables the use of TensorFlow for inference and training.
This project aims to create a library for sending messages across different platforms such as SMS, social media, and email. The goal of the project is to choose one of the comprehensive messaging services, such as the Twilio service, and build a library to interface with this service.
Creating a library to enable programmers to activate multi-factor authentication relying on ready-made services.
Create a library to enable programmers to perform automatic translation of texts using a translation service such as Google Translate.
Create a library that converts speech to text, and text to speech. It can rely on a ready-made service and make the library just a wrapper for this service, but if possible, building a library that does not rely on an external service would be the better option.
Create a library to integrate with Moyasar electronic payment gateway to enable programmers to receive payments from their customers through this gateway.
Many people do not have credit cards, but almost everyone has mobile phones. Some services provide the ability to receive payments from customers through their mobile phone credit. The goal of this project is to find a service that provides this capability and create a library to integrate with this service.
The goal of this project is to create a library for reading YAML files and converting them into class objects that can be easily accessed from within the program. The second step of the project is to enable writing, i.e., enabling writing a class object to a YAML file.
Create a library for reading XML files and converting them into class objects that can be easily accessed from within the program. The second step of the project is to enable writing, i.e., enabling writing a class object to an XML file.
Create a library that facilitates the creation of global variables that can be safely used across multiple threads. The aim of the project is to create a template class that receives the user's data type and handles synchronization of access to the data, allowing the user to choose between synchronization during both read and write (i.e., at any given time there is no more than one thread accessing the variable) or synchronization during write only (i.e., at any given time there is no more than one thread writing to the variable, but multiple threads can read the data at the same time).
Create a library to facilitate writing automated tests. The library enables:
Create a library that allows the user to print log messages. The library enables:
Create a binding library for Vulkan API to enable building multimedia applications using Alusus language.
Create a binding library for raylib library, for developing games and other kinds of multimedia applications.
Enable the Godot game engine to execute scripts written in Alusus language alongside the other languages currently supported by the engine.
Add support for using Alusus language to develop programs for microcontrollers such as Arduino or any other competitor that supports using the C language. This project requires creating the necessary library bindings to control the microcontroller and providing the necessary method to upload the program to the microcontroller.
Create a binding for libusb library, to enable the user to control USB ports from Alusus programs. This library is important for the Internet-of-Things field and embedded systems programming.
Create a binding for rabbitmq-c library, which allows using the RabbitMQ system to send messages between computing systems.
Create a library to integrate with the Google Maps service API to enable the user to display maps within their applications.
Create a library to enable geolocation based on IP addresses, by integrating with one of the ready-made location detection services.
Create a VS Code extension to add support for Alusus language to the editor. This extension needs to enable: