Fundamental Changes Between Environments of Fedena, Uzity & Flux: Experience with Ruby on Rails – Part I

Ruby (1)

 
During the course of working at Foradian for about 3 years, I had the chance to work as a developer in different applications including Fedena, Uzity and Flux. All three applications based on Ruby on Rails but in different versions of both rubies and rails. Fedena is an Education Institution Management System, Uzity is a Learning Management System(LMS) which was recently launched and Flux is an in-house task assignment tracker.
 
This is a series of articles comparing the different rails environments, beginning with this one covering the fundamental changes between environments of Fedena, Uzity and Flux.
 
In all of the three applications, the stable versions of both Ruby and Rails were set as the environment while the application development was initiated. The operating environment of the three are:
 

Fedena

Uzity

Flux

Ruby

1.8.7

1.9.2

2.1.1

Rails

2.3.5

3.2.1

4.0.5

 

CLI commands

 
Tasks like generating a rails application, starting the server, entering the console, creating its elements like models, controllers, views, migration etc, requires some terminal commands. These had also seen some major changes with these environments. While using rails 2.3.x, most commands were prefixed with script whereas it got replaced by ‘rails’ in versions 3.2 and 4.0.

 

Command

Fedena environment
(Rails 2.3.5)

Uzity environment
(Rails 3.2.1)

Flux environment
(Rails 4.0.5)

New application

rails <app name>

rails new <app name>

rails new <app name>

Start server

script/server

rails server
or
rails s

rails server
or
rails s

Open console

script/console

rails console
or
rails c

rails console
or
rails c

Generate

script/generate <generator>

rails generate <generator>
or
rails g <generator>

rails generate <generator>
or
rails g <generator>

Destroy

script/destroy

rails destroy <generator>
or
rails d <generator>

rails destroy <generator>
or
rails d <generator>

About

script/about

rake about

rake about

Plugin install

script/plugin install

rails plugin install

(feature removed)

 
The trouble while switching from a 3.2 version of rails or higher to 2.3.5 is the use of rails command. Any command following ‘rails’ will create a new app with the name in the folder.
 
Plugins & Gems
 
Plugins and gems can be used to expand the features and capabilities of a rails application. Both can be shared and reused. Plugins have to be loaded from the ‘vendor/plugins’ directory whereas the gem will be accessed through rubygems. Gems are packages as per the specifications of RubyGems and can be upgraded whenever needed, Also, a gem can define its dependencies and a gem can be used by more than one application. Plugin can be considered as an extension of Rails and need to be added manually in the application and hooked into the ‘init.rb’ file in order to use that. Plugins need to be installed and upgraded manually whereas gems can be managed centrally using bundler. Plugins are present in both Rails 2.3.x and rails 3.2. Plugins got deprecated with rails 3.2 which means it will no longer be supported by rails 4. Plugin is a good way to increase the capabilities of an app without modifying the base application. Plugin system is used in Fedena to add more and more features without modifying the core.
 
Asset pipeline
 
Asset pipeline was introduced by default in Rails 3.1. Prior to that its functionality could be added manually by using ‘sprockets’ gem. This technique is used to combine and minify javascript and stylesheets. Using Asset pipeline, assets can be centralized to a single file of the asset type and will be compressed. This can reduce the number of browser requests.To make the minified file unique and to prevent using the browser cache version, an md5 digest will be appended to the filename. The assets are located in app/assets folder and the javascripts and stylesheets have been moved into this folder from ‘public’ directory.
 
Asset loading in Uzity
 

Javascript and Stylesheets loading in Fedena

 
Bundler
 
In rails 2.3.x, the initial setup to get an app running was a tedious job due to the vagueness in specifying the gems. Bundler is a gem which can track and install exact versions of Gems needed in the project. The gem and their specified version will be added to a file, ‘Gemfile’ in the root folder of the application. Bundler was originated as a gem which could be added manually to the application and was later added by default in Rails version 3.2 and higher. Usage of bundler makes the application gem requirements much easier just by running the command ‘bundle install’. Entire set of gems unless version specified can be updated with a single command ‘bundle update’ to their latest stable versions. Bundler is present in Uzity and Flux. Bundler is not present in Fedena by default, but had been added in some cases.
 
Turboli nks
 
Like Bundler, Turbolinks is another gem which originated as a standalone gem and was added to a rails application by default. Turbolinks was added to Gemfile by default in rails 4.0. Turbolinks make use of pushstate in HTML5 supporting browsers. In this, an arbitrary data will be inserted into the session history. Instead of recompiling javascripts and css between url change, only head and body content in the loaded instance of the page. This can bring about a single page app like feel and performance between page navigation. Flux being a rails 4 app, Turbolinks has been used and has aided in making the application very much faster.
 
JavaScript frameworks
 
There are several Javascript libraries in existence. They make writing JavaScript much simpler and adds a lot of functionality to the browser, especially AJAX. Rails 2.3.5 includes prototype by default, so does Fedena. Rails 3 replaced by jquery using jquery-rails gem. In addition to the prototype js, jQuery is also used in Fedena in noconflict mode. In addition to jQuery, Uzity also uses backbone for structure of the app. Flux also makes use of jQuery.
 
CoffeeScript
 
CoffeeScript is a little language that compiles into JavaScript. CoffeScript can reduce the lines of script needed. CoffeeScript is a relatively new script and had been added as default through gem in Rails 3.1 onwards. Both Uzity and Flux uses CoffeeScript. Most of the modern browsers supports CoffeeScript, but for the sake of compatibility it is still compiled into JavaScript and delivered to browsers. Usage of CoffeeScript in this way does not impact the runtime. The efficiency of CoffeeScript compared to JavaScript can be illustrated in this example in which both does the same task.
 
CoffeeScript example
 

adjust_slim: () ->
   if $('#tab-content').length != 0
     target_height = $(window).height() - $('#tab-content').offset().top
     $('.people .slimScrollDiv:first').css('height',target_height+'px')
     $('.people .slimScrollDiv div:first').css('height',target_height+'px')
$(window).resize =>
   @adjust_slim()

 

JavaScript version of the same

 

({
 adjust_slim: function() {
   var new_height;
   if ($('#tab-content').length !== 0) {
     new_height = $(window).height() - $('#tab-content').offset().top;
     $('.people .slimScrollDiv:first').css('height', new_height + 'px');
     return $('.people .slimScrollDiv div:first').css('height', new_height + 'px');
   }
 }
});
$(window).resize((function(_this) {
 return function() {
   return _this.adjust_slim();
 };
})(this));

SASS

SASS, Syntactically Awesome Stylesheets is a new scripting language that will be converted into css. It is added as a default gem from rails 3.1 and newer through Gemfile. SASS written in ‘SCSS’ format is used in both Uzity and Flux. SASS provides variables, mixins, nesting etc.. Frequently used colors and dimensions etc.  can be added as variables and called so that change can be made in the variable alone to have an overall impact like changing a theme. Also nesting can be used here which CSS does not support. Using mixins already defined style can be reused.

example:

scss:

$color1: #333333;
$color2: #c0392b;
body{
  color: $color1;
  .grey-link{color:$color2;}
  .hover{
    .grey-link{color: $color1;}
    .grey-link:hover{color: $color2;}
    button{background:$color2;}
  }
}

css of the same

body {
  color: #333333;
}
body .grey-link {
  color: #c0392b;
}
body .hover .grey-link {
  color: #333333;
}
body .hover .grey-link:hover {
  color: #c0392b;
}
body .hover button {
  background: #c0392b;
}

These are some of the basic concepts that have been undergone some changes including deprecation and inclusions throughout from rails 2.3.x to 4.0.x. Changes in caching, routing, eager loading, deployment etc will be covered in the next part.

This article is written by:

TP

 

Sooraj T P

 
A hard core coder. A gadget freak. An unsung designer. There is hardly anything which Sooraj doesn’t talk about, be it tech, gadget, design, automobile or more. Sooraj is the “Tech Saint in making”.
 

5 Video Games to Boost Learning

Video-Games

Teachers, nowadays, have shifted away from traditional modes of teaching with classrooms, huge bags of books, notebooks and jotting down of notes, etc. They are introducing various media to deliver teaching in classroom. And one of them is the use of video games to boost learning. Video games are not just for fun. They can be great sources of learning too! We bring to you 5 such interesting video games that are not just for entertainment, but for some learning as well.

1. Civilization V: The several award-winning strategy game, Civilization V has sold some 9 million units all over the world. Children belonging to the age group of 6 to 12 years and above can easily deal with the game that teaches problem-solving skills, management of resources, collaboration, apart from the usual strategy building. Civilization V also throws light on political tactics, diplomacy, communication and also hoarding and trading.

2. Portal 2: This first-person puzzle video game is perfect for students to learn collaboration, problem-solving, visualization as well as develop thinking strategies. Portal 2 is ideal for children within the age group of 4 and 12 years and above. Portal 2 is one of the best example for videogames that promotes cognitive thinking instead of action and violence. Sequel to 2007’s Portal, Portal 2 is developed by the masterminds at Valve who brung us the ever-loved Half-Life and Half-Life 2.


3. Crayon Physics Deluxe: Crayon Physics Deluxe is a puzzle game that help students develop drawing skills, creativity, puzzle solving capabilities and a lot of physics. A 2D physics puzzle/sandbox that makes simple drawing into real physical objects. The possibilities are endless here as you are allowed to draw anything that can help solve a puzzle. There are even user created levels.

4. Braid: Another amazing game to teach students some puzzle-solving skills and creative thinking, Braid was developed by Number None, Inc and was released in the year 2008. A platform game, Braid allows the player to manipulate the time flow to manage the puzzles.


5. World of Goo:
World of Goo was developed by 2D Boy, an independent game developer and was released way back in 2008 on Wii and Microsoft Windows platform, and later released on Linux, Mac OS X and even mobile devices. This video game can teach students some lessons on resource management, some physics and of course, how to deal with puzzle.

What goes Behind the Scenes – The Fedena Engineering Process

Fedena Engineering ProcessWhen it comes to process, as in most of the organizations, there happens to be a time of complete absence, experimentation and trial and errors. So was once Foradian. While developing Fedena, we had a streak when we were trying out processes which we saw in text books or internet or sometimes from past organizations. Waterfall, Y model, XP, Agile, requirement analysis, design, development, testing, releases and more, all of these and many other priorities kept us in the queue for a better plan. And in the end, like it’s the time which defines anything, we are at a point where our engineering team has structured a process, which we think is the best, at least at the moment.

History: Agile, the Holy Grail

We were advocates of Agile Methodology(we still are). You might be knowing Fedena is built on Ruby on Rails. Rails people like most other modern programmers, speaks agile, and it was considered as the remedy to their questions.  And that trend at the time lead us to go agile (or was it a conversation between our CEO and CTO where one of them said, ‘lets  go agile!’). At that time Fedena were already in the market and in its infancy. The development comprised of customization, and feature enhancements. And yes, its true that the Fedena engineering team had this prestigious privilege  on deciding what new features has to be built, when to build it and when to ship it (we share it, to be honest). So the process is iterative, we define the requirement X, we designed and developed X in parallel those days, then we test X and release X. If X had some trouble after getting into clients, we iterated the process. And yes we did pair programming, on each module there will be a pair of developers. It went on for long, and the result was fruitful, Fedena grew.

Evolution is true

So Fedena grew, our client base changed. In past there came a time when we had to customize the base application, for many of larger customers. So when it became a pain to manage those intermittent changes, developers taking time to catch on what a particular custom Fedena undergo in previous release and so, we evolved the then followed style. We started keeping a pair per customer, which helped us again in faster delivery, and meanwhile a pair waited for changes from tasks, they where given tasks, which enhanced the core Fedena. At the time we had some 4 pairs. So pair working on a particular customer won’t have to struggle for keeping with the changes.

As of today, Fedena had underwent changes in its business and technical aspects. We now have plugin systems with larger number of features, multi-school environment and even have a SaaS application, more supported languages etc. Engineering team grew bigger. The frequency of change is faster, and these changes has to reach large base of customers across the world. So whenever we thought something is slowing down the whole process, we find that hole and fix it. After so many trial and error process, necessities and discoveries, we came to a more structured process which we follow now.

The Team

The Fedena core engineering team consist of the CTO at its head, then a development team, testing team, support team and R&D. Players of these teams at times play double roles. Development team is even divided to two, the Enhancement team and the Quickie team. The Enhancement team deals with the new features enhancements to existing features, new plugins etc. Whereas the Quickie team bug fixes and quick small features. And its not necessary that everyone stays at the position.

The Process

Mostly the work done on Fedena now are the feature enhancements, bug fixes, app refactors, and internal tools. Each one of these will be a consider as a module unit. So about the process. As I said before, the engineering team has the luxury to take decisions on what has to shipped and when, unless there are unfavorable cases. So the feature enhancement requests can come from three sources, the support, the sales and the R&D, and again there will be other stuffs like I said before. And the requests are picked out, then its planned accordingly, analyzed, designed, developed, tested and locked for release. I will break down those shortly.

Analysis

The source module will be mostly a simple write up, which gives a creamy overview to what has to be done. The write up is handed to the developer pair. They analyze the write up and based on the analysis, submits a requirement document. Once the document gets approved it moves to next phase. This usually is short but iterating process.

Design

This is the most important phase, involving developers, UX team, managers, sometimes even CTO (most of the time) and CEO comes into scene. In this phase the developer breakdowns the requirement and creates user stories out of it. If UI is needed, the docs are shared with UX team. The technical specs are then planned along with this. In between we find anomalies, the we go back to phase 1 and repeat. The final result will be docs defining the user stories, UX/UI design and technical specs.

Development

Once we feel the design phase is over (because it doesn’t end like that, iterates mostly) we proceed to the development. Development as I said earlier is paired, but contrast to the usual pair programming, here one developer will be full time and the other one will be assisting with everything. This helps us in increased delivery in shorter time, as the one assisting will be developing fulltime in some other module. Above that it also helps us to overcomes many of the pair programming nightmares, still retaining the best of it.

So it was about the people involved. We had problems in the past. We develop test and deploy, only then we know that we missed some things, it might be some language keys, or an RTL style, may be a db index or a precision of a column. It happened many times until our CTO came with this miracle recipe of development. It is a checklist that a developer must check before its forwarded for testing. This is now working great. Also at times we feel there is something wrong with the design, then we iterates, go to the requirement which lead to the design, fix it if needed, then fix the design, and come back and fix it in code.

UI/UX Report

The UX person checks the module, and comes up with a report, on whether the design they made is what it appears. Any issues are reported and redone until the team approves it. This is a mandatory process if module contains UI.

Testing

Module testing proceeds in two steps. In first step the test is planned. This step is done along side with the development and after the design. Testing is done by single person. It is in the second step the actual testing occurs. During testing the whole team designers, developers and testers come the scene. The bugs are fixed real time, if parts does not keep up with design again that is raised and fixed. And again if they find problems in design itself as I said, the circle happens again. For a module to go for release, the OK from tester is the first thing.

Code Review

This is one place the second of the pair comes in scene. The code review begins with development but not frequent. And once the development is said complete, the complete code review report is being done. The developer will work towards the point when the reviewer thinks the code is fine.

Release

The left part is the release. We have control over what to be released. Based on that we might stage or lock some modules and release some. These are based on priorities most of the time. And as said before critical issues, which has higher priorities, are released through quick releases. Fedena is installed over multiple client servers, as well as our own servers. So releasing to this huge base of instances itself used to be a very complex and time consuming task. And that lead us to a new invention, an internal tool what we call as Continuous Delivery System. It handles the clients, their business plans, the modules they own and according to theses information, releases to the large base of client installations are done through this system. The system itself is little complex and is piloting internally, so details another time.

So this is the process we follow at the moment. The fact is, there are no perfect process. At the moment this workflow is working very well for Fedena. We still have other plans of additions and changes, one of which being the scrum.  And as I said making a process itself is an evolutionary process. We don’t know which is good until we experiment it and what we use is subjected to constant change. So what we follow is a hybrid of many of models we knew, or we can call it the Fedena Process.

This article is written by:

ismu

 

Ismathullah Aman

Coding makes most his life and when he is not busy with coding and decoding, Ismathullah Aman likes training his super human self and much reading! For Aman, “Life is either a daring adventure or nothing”

Share your comments in the comment section below. For more information on Fedena click the contact button below.

Some Effective Ways of Learning

Learning-Ways

Learning should be continuous. Nothing is constant. There is ever evolving technology, and continuously developing organizations; and you too, need to change yourself to adapt to the constant switch. If you stop learning, you’ll be lagging behind the world. You have to be a better learner- something that depends on the speed of learning, your ability to retain information and recall what you have learned at the right time are all important factors of a good learner.

 

So, what can make you a better learner? We bring to you some tips which when followed would surely help you become a better learner. Read the article and know what are the ways to effective learning.

 

  • Continue learning new things. Studies have proved that people who are engaged in learning new things, have higher chances of increasing the gray matter in the brain, associated with visual memory. When somebody ceases to participate in learning activity, the gray matter tends to vanish.
  • Make use of whatever knowledge you have acquired. Unless you use the knowledge you have gained, it becomes very difficult to retain it. Make the utmost use of knowledge and help your visibility to increase.
  • It has been seen that if you teach things that you have learned, you have better chances of learning it well. This theory is widely accepted in many educational institutions where teachers do follow the concept of letting a student be the teacher for rest of the class. Practicing this concept helps to solidify any information in the brain.
  • Try and establish a personal connection with any of the information that you read. Once you do it, your retention power increases.
  • Learning through practical experience is often considered to be better than reading through textbooks. Reading information and writing it down is good; but when they are applied to practice, its appear to improve learning, better than anything else. Particularly, when you are learning a new skill, it’s always recommended to practice it regularly to develop faster.
  • Another very effective way of learning is to go through tests which can actually help you remember things very well that you have learnt. Various researches have proved that students can recall any knowledge for long when they are tested than those who are given extra time for study and not tested.
  • Reviewing your work by someone is one really good idea to get yourself corrected. Whenever possible, check with someone who has wide knowledge in your concerned subject and help you acquire some additional information.

Effective learning is not something that is adopted in one day; it takes time. Follow these tricks added with some determination can take you long way as an effective learner.

Data Management Plugin to Manage any Kind of Data in your Institution

Data-Management

Managing data in an institution is not an easy task to carry on. Especially, when there are loads of them and very less time to do it. That’s when the Data management Plugin by Fedena comes to the rescue. With this plugin, managing any kind of data in your institution becomes so easy with proper storing of data and managing them effectively. The article will let you know in detailed steps how you use the plugin.

 

The step by step guide

 

  • Get access to ‘Data Management’ in ‘Data and Reports’ when you select the main menu.
  • When you select ‘Data Management’, you will land on the page where you get the options to manage data of your institution.
  • Click on ‘New’ to create new categories for any kind of data management.
  • Fill in all necessary details about the category you create and also the fields that you want to include under the category. Include as many fields using the ‘Add field’ option. When you store the ‘input method’, you have to select any of the three options available- Text Box, Select Box and Check Box. ‘Save’ the new data category created.
  • To fill in further details in the particular data management category that you have created, go back to ‘Data management-Categories’ page and select the respective category.
  • Select ‘New Entry’ and go to the page where you need to store the details for each of the category that you create.
  • Complete storing up details and ‘save’.
  • You can see the details that you store under each category.
  • If required, you can print the page as well using the ‘Print’ option.

The healing touch of music in classroom

Music

“Music is the electrical soil in which the spirit lives, thinks and invents.” – Ludwig van Beethoven

Music, the soothe to our heart and a boost to energy level. We cannot deny the positive effect that music has to the mind- making us happy, energetic, lift the spirit and help to concentrate. Music is beneficial to students as well, helping them focus and memorize. Various studies across time have proved that music can play a huge role in improving classroom activities and enhancing learning capabilities. Moreover, learning appears fun and enjoying when accompanied with music. And if we were to travel back to our childhood days, we all had been through the ‘Alphabet Song’ or the nursery rhyme song days. Music surely made the learning much easier then. It’s not just limited to making nursery rhymes attractive, music can improve the way higher studies are conducted and promote effective student engagement.

Music and its presence in education: How you can incorporate

  • Music can help in attaining student concentration and a lot more attentive students in classroom. And more attentive students can focus on their studies for long and grab more knowledge.
  • Music played during the start of a day in school can help set up a positive mood in students. Or, play it during the time of recess or any break in between classes.
  • Enhance learning activities in your institution by playing music that develops an emotional connection between students and the activities they are engaged to. Researches carried out in various educational institutions shows an increase in engagement among students who are under the influence of music during any learning activity.
  • Plus, it has been seen that music can affect behavioral problems in class and lead to increased performance level among students. Dealing with unruly students becomes a lot easier when music is played in classroom.
  • Learning a foreign language often requires lots of concentration and includes the use of various techniques by teachers in the classroom. And one of the technique is the use of music that is believed to reduce stress and anxieties involved in learning a different language.

The use of music in education is wide; various researches and studies can prove the positive effects that music has on students. It act as a tool for classroom management for the teacher who can make the most of it to improve the quality of learning in classroom.

Fedena 3.1 Released with New Features and Improved Functions

3.1

Fedena 3.1 update is released today. The new update is a part of our constant effort to make Fedena a feature rich and bug free school management software. Fedena is present in 200+ countries and has powered more than 40,000 schools and institutes worldwide. See our plans and pricing page for various options available. You can also write to us at info@fedena.com for any further information.

Fedena 3.1 release note

New features:

Core

  1. Edit option for archived student’s leaving date.

  2. Additional leaves for employees. Read more

  3. Add csv report option along with pdf report in all Fedena reports. Read more

  4. Display guardian name in student profile.

  5. Student to have ability to select electives while admission/batch transfer. Read more

  6. Bread Crumbs for enhanced navigation throughout Fedena. Read more

  7. ‘Manage users’ privilege for employee.

 

Custom import

  1. Adding grade through custom import in grade wise exam

  2. Edit in Custom Import. Read more

 

Inventory

  1. CSV and PDF output for store items, store and suppliers in Inventory module.

 

Oauth2 Provider

  1. Add CORS headers to the API.

 

Pay

  1. Implement Interswitch payment gateway. Read more

 

Transport

  1. Transport API expansions. Read more

Issues Fixed

AppFrame

  • URL validation is needed in the app frame.
  • Give permission of Manage Apps for General settings privileged employees.

Applicant Registration

  • Chosen elective and normal subjects are not showing in the view applicants page.
  • Should not allow to add the course ,if the minimum elective is more than the maximum elective in the applicant registration.
  • Going to dashboard while entering the search by registration URL directly in applicant registration.
  • Show “Subject Based Collection” above the “Amount” field in registration_courses/new page.
  • Limitation of photo size in admission.

Assignment

  • Showing other batch student while clicking assigned in assignments.

Blog

  • Blog privilege should not allow employees to edit the blog posts of other employees.
  • If the user created any blogs then should not delete that user permanently, dependency check is needed.
  • Throwing 500 error while clicking the delete user from the blog posts page.
  • Throwing 500 error in the data palette while deleting the employee permanently, if the employee is created any blogs.

Core

  • Recently we can add user with user name Admin.
  • If the exam is not published then don’t show the exam result for student login.
  • Should not allow to add or edit an user with deleted username .
  • Attendance reports is not getting for elective subjects.
  • Calculation mistake in all subjects attendance report.
  • Going to dashboard while clicking the pdf report of the former student recent exams.
  • Employee search privileged employee have no permission to view the advanced search pdf report.
  • Student control privileged employee should have the permission to admit the students, edit additional details, and add previous data of students.
  • Student view privileged employee should have the permission to view the reports ,transport and hostel details of the students, view refunds etc.
  • Student control privileged employee should have the permission to view the transport and hostel details of the students, view refunds of the students etc.
  • Student control privileged employee have no permission to view the exam report and attendance report of the students if the employee is not associated with any subjects.
  • Batches not listing in view timetable with current timetable.
  • Cannot create Master Fee Category with name having quote (‘).
  • One click payslip generator creating the payslip of the employees who join after the payslip creation date.
  • Discount name validation issue when creating it student admission number wise.
  • Add is_deleted scope for Fee Discount.
  • Search fee refund using fee collection name and date, throwing 500 error while clicking the pagination and pdf report.
  • Throwing 500 error while entering the student transcript report URL directly.
  • Increase precision of assets and liabilities tables in finance.
  • Translation issue.
  • View all and advanced search link is not working for attendance privileged employee.
  • Deleted elective groups are showing while adding the normal subjects.
  • Same additional details are showing two times in archived employee profile.
  • Attendance register is not getting for elective subject.
  • 500 in elective subject attendance report page.
  • Correction in translation overrides between plugin and core.
  • Show Fees paid message in fee pay page.
  • Fee collection is creating without any particular.
  • Deleted batches are listing in fees collection,particular and fee discount creation.
  • “Publish exam result” link in Examination page of Employees with “Enter result”/”View result” privilege.
  • Remove “Publish exam result” link for Enter result/View result privileged employee in examination page.
  • Subject Master privileged employee cannot add elective subject to a elective group.
  • Normal students and employees should not allow to access user module.
  • After updating discount its showing wrongly.
  • Add uniqueness in category batches.
  • If Employee has student control privilege then he cant view all fees now.
  • If employee has only admission privilege then its not showing in upper menu link.
  • Student admission privileged employee can’t admit a student.
  • After paying a fee in fee defaulters there is no option to take pdf of that fee.
  • The employees are not listing while selecting the ‘All department’ in non English languages.
  • Show discount name in alphabetical order.
  • Leave approving manager name is missing in leave form.
  • Wrong error message showing in leave application page.
  • Generate the subject wise report and click the url directly, its going to dashboard.
  • All the students are listing in the subject wise attendance report while filtering the report using the above and equals to option for the elective subjects.
  • Change the style in Batch Transfer page.
  • Parameter list in the API doc does not work in actual.
  • Give permission to view Subject wise CCE report for subject teacher.
  • Transcript report is not getting in CCE.
  • Reduce the performance time for attendance report, while selecting all department the performance time is very high.
  • Validation is not checking at the time of changing password.
  • Give dependency to the leave type if any employee has created the leave application using that leave type.
  • Edit current timetable splits timetable into two even if end date is not modified.
  • Employee with Student View privilege can change immediate contact of student.
  • Amount showing zero in the refund page if we transfer the students to another batch.
  • Wrong pdf showing in generate TC.
  • Throwing 500 error while entering url directly in exam report page.
  • Employee should have the permission to view the all leaves if the employee is a manager of another employee.
  • 500 in user#show_quick_links.
  • Total percentage is not showing in pdf of Exam Wise Report.
  • The leave status is not showing if we update one leave type to another leave after the reset.
  • Serial number is same in news-all pages.
  • Style issue in the archived employee profile if the additional details is too big.
  • Can’t assign class timing set to batches.
  • Repetition of precision label translation.
  • XML output not displayed in Student Photo Upload with API.
  • Some roles missing in Administration menu link tab for privileged employees.
  • Getting 500 in routes#create.
  • Should not show the archived students dues in the additional report.
  • Throwing 500 error while uncheck and save the additional details of employee and student.
  • If there are unpaid fees in the inactive batches then that fees should list in the student wise fee submission.
  • Show rupees symbol (Currency Type) in heading line.
  • Fee defaulters students are not listing in the batch fee collections page.
  • Student transcripts are listed in batch creation order, should be in batch transfer order.
  • Disable the update button in fee collection edit.
  • Student category is not editable even if all fees is shown as paid.
  • Redirect to dashboard when finance fee category selected to view particulars.
  • Javascript issue for none (link) for additional details.
  • Decimal point count showing wrongly in create monthly payslip page.
  • Getting 500 after saving exam score with zero mark.
  • Should not list the batches those have no particulars while creating the discount and fee collection.
  • Fee collection names are not aligned in view refund page.
  • Align the save button to left side in the previous data adding form.
  • Add a space between the text in flash message.
  • Error message style in news/add page.
  • Employee additional details not updating in case of checkbox.
  • Edit additional admission details not updating in case of checkbox.
  • Brackets are broken in rtl language.
  • login_required function should be called first.
  • After changing the weekdays its effects the past attendance report.
  • Already created timetable attendance register form is updating while changing the weekdays in daily wise.
  • Style issue in the exam wise pdf report if the grade name is large.
  • If an error occurred during sending reminders then entered data and selected users removing.

Custom Import

  • Show quick link is not working in custom_reports/show.
  • Reports view privilege name selection showing many times at the time of creating a New Export.
  • Unnecessary columns are coming in export csv.
  • Showing the wrong text in the drop-down list of the custom import show page.
  • Style issue in custom reports show page with Spanish language.
  • Show only the active additional details in the new export creation page.
  • Additional details imported are not shown selected in the edit page, but showing in the view page.

Data Management

  • Page going to dashboard palettes page after clicking on save button in asset_entries page.

Data Palette

  • Throwing 500 error in the data palette while deleting the employee permanently, if the employee is a part of any discussion group.
  • If the employee is applied any leaves then archive that employee, throwing 500 error in the data palettes.
  • Timetable dashlet not displaying timetable according to class timings.
  • Timetable dashlet not displaying timetable.
  • Show-menu is not getting after selecting users.
  • Show flash message in the dashboard if  no dashlets are selected.

Discussion

  • If the user is the part of discussion, then should not delete that user permanently, dependency check is needed.

Doc Manager

  • User document files are not getting after clicking on next button.

Email Alert

  • Can’t transfer a student to another batch.
  • Email going for the parent many times if discarded and allotted the same student again and again.
  • Email alert not sending auto mails for some providers.
  • Unable to send emails from Email alert plugin.
  • Student/Employee admission (With Email alert on creation enabled) not possible if user with name ‘admin’ is not present.

Fee Import

  • Fee selecting page is not coming while admitting a new student, the issue is only in SAAS.
  • Fee status showing paid even if fees not paid, for the fee imported collections.
  • No need to show the fee collection in the import page if the particulars is created for the student using admission number or category wise.


Gallery

  • If the user is assigned to photo gallery  then should not allow to delete that user permanently,dependency check is needed.
  • Should not possible to add photos in gallery.

Hostel

  • 500 in hostel delete.
  • Hostel should select by default after clicking on add room from selected hostel page.
  • Show the warden name in alphabetical order.
  • 500 in warden page

Instant Fee

  • Spelling mistake for receipt in the instant fee receipt.

Inventory

  • Redirecting to dashboard when indents is selected as a normal admin user.
  • Show the voucher number in Inventory finance report page.
  • Purchase order number should be mandatory while creating and editing purchase order in inventory.

Library

  • Library additional details not updating in case of check box.
  • Strike the edit button for borrowed books.

Moodle

  • Moodle plugin not creating users when student admitted.

Oauth2 Provider

  • API Authorization rules not present for some methods in students controller.

Online Exam

  • Can’t create a question with letter “Q” in online exam.
  • Prevent double click in online exam answer pagination options.
  • Loader style issue in the menu tab while clicking the quick links.
  • Online exams are not showing in view online exam page.
  • Wrong error message showing in online exam view page.

Pay

  • If the payment is through online then fine amount is not taking.
  • Style issue in online payment pdf page.

Poll

  • If the user vote for one poll, then should not delete that user permanently,dependency check is needed.

Tally Export

  • Flash message is showing in improper places in tally export.
  • Same name is creating twice in voucher name create page while entering the enter button continuously.
  • Same name is creating twice while entering the enter button continuously in the tally export company name adding page and accounts page.

Task

  • Suppose the user is a part of the task then should not delete that user permanently, dependency check is needed.

Transport

  • Getting 500 in Employee transport fee collection- direct link.
  • Page error in transport page.
  • Showing flash messages in a improper places.
  • Showing wrong flash message while updating the transport fee collection.
  • Pagination needed in transport fee collection detail page.

 Previous Release Note:
Fedena 3.0

Create and Manage Campus News with Fedena’s News Feature

Blog-graphics (1)

Publishing campus news is easy to create and publish with the News management feature by Fedena. All you need to do is to create the news and publish it for your employees and students to check. Creating news and publishing it is so hassle-free with Fedena. Check out the article and know how effortless the task can be carried out.

 

Login as admin/privileged user

  • In order to create any news, login to your Fedena account and go to ‘News’ in ‘Collaboration’ tab.
  • Select ‘News’ and reach the ‘School News’ page. There you can create a fresh news.
  • To add a fresh news, click on ‘Add’.
  • Create a fresh news and publish it. Once the publication is done, the students and employees can see the campus news in their profile too.

 

Login as a student or an employee

  • When you login as an employee or a student, you need to go to ‘News’ in ‘Collaborate’ tab.
  • Select ‘View all’ and select the fresh news that you need to read.
  • Click on the news to see the details and can also leave any comment if you want.

Note: As an admin or a privileged user, you have the right to do comment moderation before they go public. For this, you need to go to ‘General Settings’ in ‘Settings’ available in ‘Administration’.

 

Select ‘Enable News Comment Moderation’ option which will allow you publish moderated comments on news created.

 

 

How to Generate a Student Fee Defaulters Report – Fedena

Blog-graphics

Extract report on students who are fee defaulters so easily with help of the amazing reports feature in Fedena 3.0. If you are thinking about how to extract report on fee defaulters of your institution, check out the article that explains the process in details.

 

How to extract report on student fee defaulters

 

  • If you go to ‘Data and Reports’ and select ‘Reports’, it will take you to the page with all the reports that you can generate from the unique Reports feature.
  • Select ‘Students Fees Defaulters Details’ to generate a report on all the students who are fee defaulters.
  • The report shows details of all the students who are fee defaulters with their ‘Admission no’, the name of the course and batch they belong to along with the number of fee collections that the student is due to pay. Selecting any individual student or the admission number will take you to the respective student’s profile.
  • If you want to see the details of each student’s fee defaults, select the respective ‘Balance’ option and go to the student’s fee default page.
  • You can get all the reports in CSV format as well.

Fedena 3.0 – Empowered by JQuery

Jquery (1)

Gone are the days of so called “Static” or “Semi Static” webpages. With the World Wide Web growing past its silver jubilee, web technologies evolving and outperforming their old selves every single day, the requirements and expectations of end-users have also come a long way. So, if you have a web based product, you have to set your sails and keep moving in the direction of this evolution, to stay alive in the race of being the best in your class. And so did we.

As of recent times, the benchmark of a web application is how interactive it is with users, how simply and quickly a user can accomplish the intended purpose with minimum number of page redirection and how fast the server responds to user actions. The modern age web applications mark the minimization of total page count and maximization of single page functionality. To achieve this, from a developer’s point of view, it is important to make the system perform as many actions as possible on the client side, without having to send request to the server. This, in fact takes a lot of unnecessary pressure off the server as well, which in turn improves its response time. And in case server interaction is needed and its response has to be shown to the user, only the required part of the page can be updated, instead of reloading the entire page or redirecting to a new one. As a result, less data has to be downloaded every time which also makes the whole process faster. And this is exactly where client side scripting aides like JQuery and asynchronous server interaction techniques like Ajax, come to the party.

What is JQuery?

JQuery can be formally defined as “a cross-platform JavaScript library designed to simplify the client-side scripting of HTML”. So, ideally JQuery is a collection of functions written in Javascript, and once the library is included, we just need to call these functions in the places we need and with the required parameters if any, and it can do wonders with a minimum effort from the developer’s end.

Why choose JQuery over plain Javascript?

Well, JQuery is nothing but Javascript only. Whatever JQuery can do, the same can be achieved by using plain old Javascript as well. But it would be way more tedious. And it would require significantly adverse knowledge of Javascript as well. Let us take up the example of a simple JQuery function like .slideToggle(). When called upon an HTML element, it provides smooth up and down sliding of the element while hiding and showing it respectively. We can even control several aspects of the process like sliding speed, delay of start after clicking etc. simply by passing appropriate parameters while calling the function. Now imagine, how much time and effort we need to accomplish the same in plain Javascript. So, the prime advantage of JQuery over Javascript is that it saves time, effort and obviously “Lines of Code”, and last but not the least, the developer only needs to know the syntax and what it does, and not the big chunks of underlying javascript code. Moreover, there are hundreds of JQuery plugins and widgets available for every other need of developers and the count is increasing every single day. So, before jumping into sculpting any new idea with JQuery from scratch, we can just go through these already available plugins and widgets, and nine out of ten times we will find one, that can push us much closer to the finish line at once.

How we implemented JQuery in Fedena 3.0

Fedena has always been known for its simplicity and quality user experience. Moving along the path of evolution, Fedena has gone through a massive makeover in its version 3.0. While the designing team has to be given most of the credit, the contribution of JQuery has also been immense. Let us highlight the most important of those.

The Main Menu

main-menu.png

The main menu slides down when the “Menu” icon on the top bar is clicked, and it slides up again if we click anywhere in the page except the menu itself. This has been implemented simply by using the .slideUp() and .slideDown() JQuery functions. The links are grouped under different tabs based on their categories. When we click on any tab, an AJAX request is sent through JQuery to fetch the links that come under that category and the lower <div> is updated with the new links. Once a tab is clicked for the first time, the links for that tab are cached, thereby saving time for result fetching in future. Now, if we hover on a link, and if the link has associated sub-links, the sub-menu comes out to the right of the link, and to the left if sufficient space is not available on the right side. To set the position of the sub-menu, first we keep it hidden, find out the “top” and “left” of the link using the .offset() function, find the heights and widths of the link, the sub-menu and the main menu div using .height() and .width(), do required calculations with them to find out an ideal position for the sub-menu, set its position using .position() and finally show it using .show(). Simple enough.

The Data Palettes

palettes-2.png

The “Data Palettes” page is the new generation substitute for the old Fedena Dashboard. It provides each user with an informative and customizable homepage instead of just a collection of links. On clicking on the “Manage Dashlets” link at the top, a dashlet selection menu slides down with all the available dashlets. The user has to select the ones he wants to see and hit “Save”. The selection menu slides up and the lower main div is updated with the latest selections. While this process is completed entirely using JQuery and AJAX, the lower main div is where we have used JQuery and AJAX at their best. In fact, everything we do here, is through JQuery and AJAX only. The entire div is divided into 3 columns and each dashlet is assigned a particular column number and sequence number when they are selected. The dashlets can be just dragged and dropped from one position to another, and after each such rearrangement, an AJAX request is sent through JQuery to update the column number and sequence number of each affected dashlet. So, the next time the user comes to this page, he will find it just as he left. Each dashlet gives a particular information for a particular date selected from the attached JQuery Date Selector or the forward and backward date navigators on its two sides. Of the 3 icons in the top-right corner, the first is “Refresh”. The entire content slides up and comes down with the updated set of data. The second one is a “Minimize / Maximize” toggle. Any action on this will update the state in the database as well through AJAX. So if you leave it minimized, you will find it the same the next time you come back. The last one is the “Remove” option which removes the dashlet from the user’s selections. We got the concept of dragging and dropping from the “JQuery Portlet” widget, customized that and included all these features on top of it to bring out our “Data Palettes”.

While, these are the two places where we used JQuery and AJAX the most, there are several other places like the “Manage Quick Links” page, the “User logout” and “Sibling Switching” dropdowns etc, where we have used them as well. In fact, many places where scripting was done previously by prototype or plain Javascript, we changed that to JQuery. Such has been the love and addiction for this powerful and friendly library, since we started working with it.

This article is written by:

prof_pic_1

 

Swagnik Choudhury

A software engineer and sports enthusiast who believes in the ever learning curve of life. From developing a project to playing the cover drive, he loves to go an extra mile to make things closest to perfect.

 

Have any interesting insight to share, leave us a comment. For more information on Fedena click the contact button below.

Interesting must-have apps for e-learners

Apps

E-learners have to stay updated with the constant evolvement taking place in the world of e-learning. With every passing day, new and advanced technologies being introduced to facilitate education and learning. And if you an e-learner, you must be well-equipped with all latest apps to speed up your learning activities. To help you out, we have compiled some of the must-have apps for e-learning. Check out what are they as you go through the article.

 

TED: The free to use TED app is the perfect choice to gather knowledge from some of the best thinkers of the world. Downloading the talks of great people is allowed with TED and all you need to do is to download the ‘My Talks’ and incorporate into your learning at your ease.

 

Available @ Google Play, Windows Store, iTunes App Store

 

Scoop.it: Another free app, Scoop.it allows content organisation to let you stay updated with latest trends and development in your concerned industry. Use this app and select, organise and publish any kind of content gathered from other posts from anywhere in the web. Sharing your organised content in social media is so easy and exciting.

 

Available @ Google Play, iTunes App Store

 

Trello: An amazing organisational app, it lets you manage all your important tasks, dividing huge projects into easy small steps to accomplish. Trello is perfect if you have a group project as it helps you with division and completion of the project with less effort.

 

Available @ Google Play, Windows Store, iTunes App Store

 

Evernote: Find it hard to remember things from your daily life? Then you should surely go for Evernote and store all images, files, notes, web pages, audio and a whole lot of other things and get access to them whenever and from anywhere you want. And its free!

 

Available @ Google Play, Windows Store, iTunes App Store, Blackberry

 

Learnist: Follow great thinkers, topics and tags and extract information for learning and share with others as well. Another free app for you!

 

Available @ Google Play, iTunes App Store

 

GoToMeeting: Connect with your colleagues from anywhere in the world for meeting using the GoToMeeting app which is available for free for installation, but requires in-app purchase. View presentations and reports as well as share screens using the reliable and easy to use app.

 

Available @ Google Play, Windows Store, iTunes App Store

Flexibility of Fedena Examination Module

Untitled-1
Fedena has an amazing ability to adapt to almost all kinds of examinations and reports that can ever happen in institutions. Thanks to features like Connect exams, Grading system and Exam type which gives the freedom to tailor the application to suit one’s need. Besides generating reports via Report Centre, the Report module has been introduced in the latest release to add yet another series of reports that one seek for. Lets have a glimpse of all the key features that make this possible.

 

Connect Exams

This unique feature helps the user to connect different exam groups based upon the corresponding weightages acquired. “Connect exams” calculates the Final marks of a student by adding  the exam groups as per the weightages attached. So, even if the final result depends upon the percentage of marks scored by the student, we are ready for the required transcript. All we need to do is to connect the exams accordingly to carve out a decent final report.

 

 

Grading System

The additional grading systems available in Fedena currently are – GPA, CWA, CCE. We can decide a grading system for a course, while creating it. The course can now entertain the scores for the required report. For instance, if we are going for GPA or CWA, the system asks for the credit points of subjects unlike its counterparts. However, if a user needs customized grading system, the normal grading system is the one to be used.

 

 

Report Centre

The Report centre in Examinations module is the hub of all possible reports that one can think of. Some of the interesting reports include exam wise reports, subject wise reports, grouped exam reports and archived student reports. These sets help you to generate reports and monitor the progress of a student involving various criteria.

 

Examination settings

The examination settings that we do for grading levels, class designations or the Ranking levels can be divided based upon each of the courses rather than being generic for the institution as a whole. This allows the user to make different settings for each of the batch in the institution.

 

Previous batch Exams

This feature equips the user to add exam scores of previous batches. Thereby making the application adaptive to institutions where the students’ result are published after the batch transfer as in the case of majority of engineering colleges in India.

 

Online Exams

Though the traditional ways of examination are still prevalent, institutions have come up with an increasing need for the conduction of Online exams. This helps the student and the institution to be quick in conduction and the evaluation of the exam. Hence, giving yet another possibility to craft an examination as per the requirement.

 

Generate Reports

In case where the user needs to have the revised result as well as the old result for an examination, Fedena offers the Generate reports option which will change the data in the report centre to current result entered. Taking PDF reports before and after generating reports gives you the privilege of having two different versions of the same exam – revised result and old result.

 

 

So these are some of the important pillars which makes Fedena generic for all kinds of examination and thereby making it more “Flexible”. Stay tuned for the next version of the article to see how Fedena adapts itself  to cater to the needs of Academic Evaluation and Assessment worldwide.

This article is written by:

1185742_10200807421647862_134988297_n


Sandeep Panda

An optimistic techie with special interests in implementing technology in real life situations with  a curiosity for the lesser known technical stuff. An individual who can adapt to cross-cultural environments with ease.