{"id":27374287,"url":"https://github.com/luuppiry/luuppi-larpake","last_synced_at":"2025-10-28T02:03:24.393Z","repository":{"id":272500306,"uuid":"898655705","full_name":"luuppiry/luuppi-larpake","owner":"luuppiry","description":"Implementation for Fuksi Electronical Lärpäke for Luuppi ry (Tampere University)","archived":false,"fork":false,"pushed_at":"2025-05-21T12:59:05.000Z","size":2870,"stargazers_count":4,"open_issues_count":31,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-02T01:33:49.743Z","etag":null,"topics":["api","asp-net-core","csharp","dotnet-core","luuppi-ry","tampere-university","university"],"latest_commit_sha":null,"homepage":"https://larpake.luuppi.fi/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luuppiry.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-04T19:35:15.000Z","updated_at":"2025-07-16T06:38:37.000Z","dependencies_parsed_at":"2025-01-14T20:56:01.789Z","dependency_job_id":"b4202394-1ffc-4583-9e1b-3f353b64909d","html_url":"https://github.com/luuppiry/luuppi-larpake","commit_stats":null,"previous_names":["henrivain/larpake","luuppiry/luuppi-larpake"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/luuppiry/luuppi-larpake","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luuppiry%2Fluuppi-larpake","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luuppiry%2Fluuppi-larpake/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luuppiry%2Fluuppi-larpake/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luuppiry%2Fluuppi-larpake/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luuppiry","download_url":"https://codeload.github.com/luuppiry/luuppi-larpake/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luuppiry%2Fluuppi-larpake/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281371793,"owners_count":26489526,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-28T02:00:06.022Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","asp-net-core","csharp","dotnet-core","luuppi-ry","tampere-university","university"],"created_at":"2025-04-13T11:45:36.056Z","updated_at":"2025-10-28T02:03:24.387Z","avatar_url":"https://github.com/luuppiry.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build and Deploy](https://github.com/luuppiry/luuppi-larpake/actions/workflows/production.yaml/badge.svg)](https://github.com/luuppiry/luuppi-larpake/actions/workflows/production.yaml)\r\n\r\n# Lärpäke\r\nElectronical Luuppi Lärpäke. Track who attends the most events in their freshman year!\r\n\r\n## About\r\n\r\n\u003cimg src=\"https://github.com/user-attachments/assets/02668fb1-df04-47ac-91d2-2f3162df7630\" width=\"320\" align=\"right\" alt=\"Image of Lärpäke\" /\u003e\r\n\r\nThis repository contains implementation for the new generation of freshman event attendance cards (aka Lärpäke). \r\n\r\nLuuppi is student organization for computer science, mathematics and statistical data analysis students in Tampere University Finland. \r\n\r\nFuksilärpäke is traditional part of freshman year for students in Luuppi. Fresmen compete on who gathers the most points during their freshman year. You can get points by fro example attending different events organized by Luuppi and other university organizations. Those with the most points are awarded with different prizes at the Luuppi Christmas party.  \r\n\r\n## Getting started\r\n\r\nInstructions for running the project can be found on [wiki](https://github.com/luuppiry/luuppi-larpake/wiki) \r\n\r\n### Requirements\r\n\r\nDocker + NodeJs (for minimal front end dev setup)\r\n\r\n## Technologies\r\n\r\n### Web API\r\n\r\n\u003cimg src=\"https://github.com/user-attachments/assets/e20ade74-437f-49c9-aa22-6472866b1986\" width=\"60\" align=\"right\" alt=\"c sharp logo\" /\u003e\r\n\r\n`ASP.NET Core` `.NET9` `C#` `C# 13` `Web API` `Controllers` `REST` `JWT` `OpenApi Scalar` `Dependency Injection`\r\n\r\nIn the heart of the Lärpäke is the REST api implemented using ASP.NET Core Web API with controllers. Api is implemented using RESTful architechture and fro easier use, OpenApi Scalar is used to visualize api endpoints and their request data. Authentication and authorization are implemented using json web tokens (JWT). As usual, services are managed by dependency injection (DI). \r\n\r\n\r\n#### Database\r\n`PostgreSQL` `Dapper`\r\n\r\nThe web API uses PostgreSQL database to store all the data created by user clients. Dapper ORM is used in the C# code to map sql query results into objects. For those interested, database graphs can be found `Wiki` -pages under `Database Graphs` ([here](https://github.com/henrivain/Larpake/wiki/Diagrams)).\r\n\r\n#### Api Events\r\n\r\n`SSE`\r\n\r\nWeb api serves Server Sent Events (SSE) for subscribed clients when user's event attendance is marked as completed hereby causing UI update. \r\n\r\n### Front End\r\n\r\n`Vite` `Typescript` `CSS` `HTML`\r\n\r\nFront end is built with minimal vite + Typescript, HTML, CSS stack. \r\n\r\nFor UI design drawings see `Wiki` -\u003e `Design` ([here](https://github.com/henrivain/Larpake/wiki/Design)).\r\n\r\n### Authentication\r\n\r\nProject uses luuppi's existing Azure Entra Id auth system with minor tweaks.\r\n\r\n## Project Timeline\r\n\r\nProject is up an running in larpake.luuppi.fi. Project is in beta stage and should be ready to take real users in the the end of the summer in 2025.\r\n\r\n## Contributing\r\n\r\nContributions are always welcomed! Project is still at its youth so no contributing guidelines are written so far. If you are interested in improving Lärpäke, contact us! \r\n\r\n## Contributors\r\n@henrivain \u0026 @JurnetFIN\r\n\r\n## Support \u0026 Features\r\n\r\nFor support and feature requests preferably open a issue in Github (see `Issues` -page)\r\nOr send email to  \r\n\r\nhenri.vainio(at)luuppi.fi or juliusz.kotelba(at)luuppi.fi\r\n\r\n## Bug reports\r\n\r\nSend email to webmaster(at)luuppi.fi or open Github issue. If bug is visual, please include screenshot that demonstrates the error. If error might be caused by data fetching (action requires some data which causes error), please add TraceId from console, if you are provided one. If you don't know where to aquire TraceId from, Lärpäke team is always here to help you! \r\n\r\n\u003cdetails\u003e\r\n\r\n\u003csummary\u003eAika on rahaa?\u003c/summary\u003e\r\n\r\n### Tähän projektiin kulutettu aika\r\n\r\n#### @henrivain\r\n[![wakatime](https://wakatime.com/badge/user/33becafa-9125-4b20-b55e-a824ccc490f1/project/ad9cdb99-5373-46b4-8af9-a789d14f6abc.svg)](https://wakatime.com/badge/user/33becafa-9125-4b20-b55e-a824ccc490f1/project/ad9cdb99-5373-46b4-8af9-a789d14f6abc)\r\n\r\n#### @JurnetFIN\r\n[![wakatime](https://wakatime.com/badge/user/c8b15fbf-a210-457e-9da7-a0093d788004/project/0f7f4037-1fcd-45ae-a399-158209116f96.svg)](https://wakatime.com/badge/user/c8b15fbf-a210-457e-9da7-a0093d788004/project/0f7f4037-1fcd-45ae-a399-158209116f96)\r\n\r\n\u003c/details\u003e\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluuppiry%2Fluuppi-larpake","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluuppiry%2Fluuppi-larpake","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluuppiry%2Fluuppi-larpake/lists"}