Coder Social home page Coder Social logo

lcc-semester-project's Introduction

About Me

My name is Pedro Silva. I've started programming from a very young age, since I was 13 years old, on my own free time. I am 24 now, and I have a Bachelor's Degree in Computer Science and (am currently finishing) a Master's in Computer Engineering. I have lot's of experience with PHP, C#, JavaScript/TypeScript and Python. I've worked with AngularJS/Angular2, Vue, Laravel, ASP.NET Core and more. But more than what I already am familiar with, I'm always eager to know what I can learn more.

Work Showcase

I've worked on countless projects: at Blip during my internship there, at school and in college, and in my own free time. You can see some of them below.

Unicast

For the last five years, I've been developing, as a hobby alongside my brother, a web-based media center, inspired by the Kodi project, that is responsive (mobile friendly), can be remotely controlled on the smartphone, and player agnostic (extensible, with out-of-the-box support for streaming to Chromecast devices, to a MPV player and to a Kodi media center). As a result of this, I've also learned a lot about working with FFmpeg.

  • Tech Stack NodeJS backend written in TypeScript, backed by a RethinkDB database with an Angular 2+ frontend

Screenshot

See more screenshots here ๐Ÿ“ท, repositories available here (backend) and here (frontend) ๐Ÿ“

Assiduidade

When I was 18 years old, for my individual high school Professional Aptitude Project, I developed a web application to manage the logistics of tracking absentee teachers and finding replacements for their classes, which required managing teachers, students, courses, classrooms and class schedules.

  • Tech Stack PHP backend (custom made framework w/ Routing, DB, REST, DI, ACL and more), backed by a MySQL database with an Angular JS frontend

Screenshot

See a quick demo video here ๐ŸŽฌ

MusiKLa - Music and Keyboard Language

For my Master's dissertation, I've designed and developed a Domain Specific Language for creating music algorithmically. It features variables, loops and other control structures, functions, modular files, declaring reactive virtual musical keyboards and much more. It can play the sounds live, save the music sheets or export as MIDI events, among others.

  • Tech Stack Python command line application, with a LALR grammar

Musikla Code Sample

See the repository here ๐Ÿ“

Async Iterators

I program in TypeScript a lot, and have extensive experience with it's async nature. One of the projects I've developed contains a fair bit of utility functions designed to work with the recent async iterators added to the ECMAScript specification. Many of the operators are fairly simple (such as map and filter) while others are fairly more complex (such as the flattenConcurrent operator, whose source code is available here ๐Ÿ‘ˆ).

import { from, delay, map, flatMapConcurrent } from 'data-async-iterators';

// Create an asynchonous iterable stream
const source = delay( from( [ 1, 2, 3, 4 ] ), 1000 );

// A closure that takes a number and slowly returns the number and it's square
const mapper = number => delay( from( [ number, number * number ] ), 4000 );

// Run mapper concurrently only twice
const flatMapConcurrent( source, mapper, 2 );

// And finally consume the values (returns a promise notifying when the iterator ends)
forEach( source, res => console.log( res ) );

See the full repository here ๐Ÿ“

Pinned Repositories

For reading this far, here is a cute GIF of a cat and a dog as a thank you! โค๏ธ

Kitten and Dog

Below ๐Ÿ‘‡ you can also find a list of my pinned repositories, or you can also look at the complete repository list.

lcc-semester-project's People

Contributors

pedromsilvapt avatar

Watchers

 avatar  avatar

lcc-semester-project's Issues

Finish packages list and details

Include missing functionality in the packages listing and details pages:

  • Count views and downloads
  • Show views and downloads
  • Only allow to view packages a user has authorization to see
  • Show published date
  • Generate a numeric incremental code for projects and use it in the project url

Create Home Page

Home page should have a search box.
Beneath there should be three tabs:

  • Most Recent
  • Most Viewed
  • Most Downloaded
    Based on what separator is chosen, the corresponding list of packages should be shown.

Also, we should:

  • Add a footer to the layout template
  • Add a search bar to the top

Create CRUD interface for users

  • Allow creating and updating users from the users management page
  • Allow users to be soft deleted (if they have no published packages in the platform)

Create a REST API for packages

There should be a read-only REST API to view packages

  • /api/packages Return a list of packages
  • /api/packages/:code View details of a certain package

The API should return the data in JSON.

Create CRUD interface for projects

  • Update the interface for uploading generated packages
  • Create an edit/create package page
  • Allow packages to be soft-deleted (marked on the database as deleted)
    • Only show deleted packages to administrators

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.