Skip to content

arnaudoff/LinuxPackages

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

LinuxPackages

LinuxPackages is a web application whose main idea is to serve as a unified place for storing and maintaining linux package archives for all distributions ever created.

Build status Coverage Status

Features

  • Authentication and authorization, two user roles - user (maintainer) and administrator.
    • Supports custom user avatars
    • Supports password changing
    • Supports user profile with latest uploaded packages and issues for the user
  • Package addition
    • Multiple screenshots upload
    • Multiple package maintainers
    • Supports packages dependency
  • Package listing
    • Sortable/pageable/groupable/filterable list of all packages
  • Issue addition
    • Supports rich text editing/formatting
  • Issue listing
    • Sortable/pageable/groupable/filterable list of all issues
  • Package details
    • Supports download of the package
    • Supports 1-5 rating of a package
    • Supports package comments (rick text editing), pagable
  • Issue details
    • Supports issue replies
    • Supports issue closing
      • An issue can be either closed by its owner or user who's in the maintainers list
  • Home page
    • Displays the most recent issues
    • Displays the most downloaded packages
    • Displays the top maintainers
  • Administration area
    • The home page displays the recently posted issues, recently uploaded packages, recently added package comments and issue replies
    • The packages administration page
      • Supports editing and deleting of packages
      • Supports PDF/Excel exporting of packages
      • Shows statistics for the package upload distribution in the last one month
    • The issues administration page
      • Supports editing and deleting of issues
      • Supports PDF/Excel exporting of packages
    • The distributions administration page
      • Supports creating, editing and deleting of distributions
    • The architectures administration page
      • Supports creating, editing and deleting of architectures
    • The licenses administration page
      • Supports creating, editing and deleting of licenses

Project architecture

  • Assembly Common/LinuxPackages.Common
    • contains constants shared throughout the code base; including utility classes
  • Assembly Data/LinuxPackages.Data
    • contains the core database configuration: the database context, migrations configuration, data seeding etc.
  • Assembly Data/LinuxPackages.Data.Models
    • contains the database models for the application; including enumerations
  • Assembly Services/LinuxPackages.Services.Data
    • contains classes that represent one level abstraction over the repositories
  • Assembly Web/LinuxPackages.Web.Mvc
    • contains the main ASP.NET MVC application: controllers, views, viewmodels etc.
  • Assembly Tools/LinuxPackages.Tools.Crawler
    • contains a simple crawler that scraps some packages, their description and categories from https://packages.debian.org/stable/ and exports them to a CSV that can be used to train an Azure ML model
  • Assembly Tests/LinuxPackages.Common.Tests
    • contains tests for the common classes, i.e utility classes
  • Assembly Tests/LinuxPackages.Web.Mvc.Tests
    • contains controller, route and some nice day maybe integration tests

Disclaimer

The purpose of this project is entirely educational. It relies heavily on the KendoUI ASP.NET MVC wrappers such as Kendo Grid, Kendo Editor, Kendo TabStrip etc. that are available only in the professional edition of the library. However, the project includes the 30-day trial version of KendoUI, which can be downloaded here.

Screenshots

About

the sane linux packages directory

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published