GithubHelp home page GithubHelp logo

valmojr / inviteme Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 2 KB

Full Stack Web Application to handle events in slack servers, google calendar, discord or other event platforms, creating roles and groups, descriptions or images on the app

inviteme's Introduction

InviteMe App - Web Application

InviteMe is a event handler Next.js project that i created to learn Next 14 features building a zero runtime application. This application is meant to handle events in slack servers, google calendar, discord or other event platforms, creating roles and groups, descriptions or images on the app.

How to Run

After pulling this repository, you must pull its submodules (frontend and backend repositories) Then, run the development docker environment:

sudo docker compose up

Open http://localhost:3000 with your browser to see the result.

Built with

HTML5 CSS3 JavaScript TypeScript Node.js NPM Nest.js React.js Next.js Shadcn/UI TailwindCSS PostgreSQL Prisma ORM JWT Docker Vercel Jest

Business Requirement

  • Dashboard with avaliable events (house reserved that the logged user is insert on, or public events)
  • Event Administration Page
  • Role Based Authorization System on each event
  • Image Repository to handle avatars and thumbnails (Self hosted? S3? not defined yet)

Project Requirements

Back end

  • All codebase must be inside this repository
  • Dependencies must be defined in a config file inside the repository and containerizable, not on the OS
  • Project must be runnable in different environments (development, staging, production)
  • Backing services must external services
  • Separate build and running stage inside the container
  • Application must be stateless (read only containers, ephemeral)
  • Service must be exposed to a bind port
  • Scalability must be horizontal (be able to quickly deploy more containers to process requests)
  • The whole application must be disposable, in case of invasion, the container must be burned and redeployed
  • Development and Production environment must be pared
  • Logs must streamed (remember log4j vulnerability)
  • Admins processes must no be executed in a isolated container

Database

  • Relational Database => PostgreSQL running on a Docker container for development environment, Vercel Postgres DB for deployment environment (why? because it's free).
  • Object-Relational Mapping? Prisma ORM, good Typescript integration, cascading relations and easy to change entities schemas (will definitely have some changes over time)

Front End

  • Approved on Core Web Vitals
  • Approved on Page Speed Insights
  • Full customization on event/groups color and thumbnail with drag and drop images
  • Zero Runtime UI Libraries, if we are going to use Next.js as framework, there is not sense in using CSS in JS or other stying solutions that will generate some runtime to generate the CSS, soo Tailwind CSS and Shadcn/UI will be used for stying
  • Being able to organize the groups and roles by drag and dropping

inviteme's People

Contributors

valmojr avatar

Stargazers

Álex Fernando avatar Murilo avatar

Watchers

 avatar

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.