Giter Site home page Giter Site logo

edc-it / meinsight Goto Github PK

View Code? Open in Web Editor NEW
21.0 21.0 16.0 13.61 MB

M&E Insight, an open source Monitoring and Evaluation Data Management System for International Development Projects.

Home Page: https://meinsight.edc.org

License: GNU Affero General Public License v3.0

C# 21.62% HTML 31.30% Dockerfile 0.02% CSS 7.18% JavaScript 23.32% Less 6.28% SCSS 10.28%

meinsight's People

Contributors

mmahomar avatar moyahynes avatar

Stargazers

 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

meinsight's Issues

Improve Settings view

Update /Settings view to include Bootstrap 5 cards with icons for each settings area

Update Student views

Reorganize the Student views:
/Views/Students/Create
/Views/Students/Edit

Based on the Participant views:
/Views/Participants/Create
/Views/Participants/Edit

Add pagination to all list views

Update List views to include server-side pagination/paging to allow loading of data records partially and faster. Current List Views use DataTables.net JavaScript library to render tables, and Lists would need to be upgraded to use server-side processing instead.

Update Education Administrator views

Reorganize the Student views:
/Views/Students/Create
/Views/Students/Edit

Based on the Participant views:
/Views/EducationAdministrators/Create
/Views/EducationAdministrators/Edit

Update Teacher views

Reorganize the Student views:
/Views/Teachers/Create
/Views/Teachers/Edit

Based on the Participant views:
/Views/Participants/Create
/Views/Participants/Edit

Disable Query Filters for List Actions to allow admin role to view/recover deleted records

Feature implementation that would allow admin roles to view soft-deleted records and recover if deleted by mistake
https://docs.microsoft.com/en-us/ef/core/querying/filters#disabling-filters

var applicationDbContext = _context.Organizations
.Include(o => o.Locations).ThenInclude(o => o.ParentLocations)
.Include(o => o.OrganizationTypes)
.Include(o => o.ParentOrganization)
.Where(o => o.ParentOrganizationId == id);

Update School views

Reorganize the Schools views:
/Views/Schools/Create
/Views/Schools/Edit

Based on the Organizations views:
/Views/Organizations/Create
/Views/Organizations/Edit

Add Excel/CSV data import capability

Develop a data import feature from a CSV preformatted template to the database using the Open XLM SDK for Office package. Allowing end users to bulk import Organizations, Locations, Participants, and Enrollments.

Import from Excel
Allow data import for:

  1. Group Enrollments (including Participants)
  2. Organization/Schools
  3. Settings/Locations (RefLocation)
    Import wizard:
    •Step 1 – download pre-formatted template that includes Parent Ids
    •Step 2 – prepare and import file
    •Step 3 – review data to import
    •Step 4 – save, update database, load imported data/view

To Import for GroupEnrollments (including Participants)
Required Parent Ids from:
•GroupId (to relate import to a specific group)
•OrganizationId (to relate each participant to an organization)
Participants Fields:
•ParticipantId (generate)
•RegistrationDate
•OrganizationId (relate to existing)
•RefParticipantCohortId (from reference)
•ParticipantCode
•FirstName
•MiddleName
•LastName
•RefParticipantTypeId (from reference)
•RefSexId (from reference)
•BirthDate
•Age (auto calculated)
•Disability
•RefDisabilityTypeId (from reference)
•Phone
•Mobile
•Email
•Facebook
•InstantMessenger
•RefLocationId (from reference)
•Address
Group Enrollment
•CreatedBy
•EnrollmentDate
•Attendance
•RefEnrollmentStatusId
Validations:
•ParticipantCode – if already exists – ask to update existing or add new record?
•Check all related exist
•Dates with correct format – and not from past years?
•trim
Template generation for Participant import must include:
Reference tables:
•RefParticipantCohortId
•RefParticipantTypeId
•RefSexId
•RefDisabilityTypeId
•RefLocationId
•RefEnrollmentStatusId

Update all Controllers Delete actions based on .NET Core 6 template

1) Update Delete GET actions from :

if (id == null)
{
return NotFound();
}

to:
if (id == null || _context.Programs == null) { return NotFound(); }

2) Update Delete POST actions from:

var program = await _context.Programs.FindAsync(id);
_context.Programs.Remove(program);
await _context.SaveChangesAsync();

to:

if (_context.Programs == null)
{
     return Problem("Entity set 'ApplicationDbContext.Program'  is null.");
}
var program = await _context.Programs.FindAsync(id);

if (program != null)
{
     _context.Programs.Remove(program);
}
                        
await _context.SaveChangesAsync();

Login issues

I tried to login to the M&E Insight demo but I get an "Invalid login attempt" error message.

I tried sending a mail to [email protected] but received the response: The group meinsight only accepts messages from people in its organization or on its allowed senders list, and your email address isn't on the list.

Upgrade to .NET 6 framework

The current framework version .Net Core v2.2 is out of support. Migrate the project to ASP.NET Core 6.0 including code-first Entity Framework entities, MVC controllers, Views, Models, and upgrade JavaScript libraries

Add Query Filters to soft delete Application Users

Update Application User to allow soft deleting by using existing Query Filters in DbContext

[ScaffoldColumn(false)]
[Display(Name = "Is Deleted")]
public bool IsDeleted { get; set; }
[MaxLength(50)]
[ScaffoldColumn(false)]
[Display(Name = "Created By")]
public string? CreatedBy { get; set; }
[ScaffoldColumn(false)]
[Display(Name = "Created Date")]
public DateTime? CreatedDate { get; set; }
[MaxLength(50)]
[ScaffoldColumn(false)]
[Display(Name = "Modified By")]
public string? ModifiedBy { get; set; }
[ScaffoldColumn(false)]
[Display(Name = "Modified By")]
public DateTime? ModifiedDate { get; set; }
[MaxLength(50)]
[ScaffoldColumn(false)]
[Display(Name = "Deleted By")]
public string? DeletedBy { get; set; }
[ScaffoldColumn(false)]
[Display(Name = "Deleted By")]
public DateTime? DeletedDate { get; set; }

Improve Login page

Update login similar to Bootstrap 5 login example
/Identity/Account/Login

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.