Code Monkey home page Code Monkey logo

festify-admin's Introduction

โš™๏ธ Administration app for the festify project โš™๏ธ

Festify Admin is a React JS web application for managing the content and user interactions of the Festify educational multiplatform app (uses React Native & Expo). It allows teachers to create and edit lesson content, manage rewards and communicate with students through various channels. The app uses Firebase Firestore for real-time updates and offers gamification elements to engage and motivate students in their learning.

๐Ÿ“ฑ Screenshots ๐Ÿ“ฑ

image

๐Ÿ› ๏ธ Build with ๐Ÿ› ๏ธ

Server Stack

  • TRPC - TypeScript RPC framework
  • Firebase Admin - Firestore, Authentication, Cloud Functions, Cloud Storage
  • Node.js - JavaScript runtime environment
  • TypeScript - Typed JavaScript at Any Scale
  • Expo Server SDK - Expo Server SDK
  • Zod - TypeScript-first schema validation with static type inference
  • Resend - Email delivery service

Client Stack

  • TypeScript - Typed JavaScript at Any Scale
  • React Router DOM - Declarative routing for React
  • React Query - Performant and powerful data synchronization for React
  • React Hook Form - Performant, flexible and extensible forms with easy-to-use validation
  • Zod - TypeScript-first schema validation with static type inference
  • Tailwind CSS - A utility-first CSS framework for rapidly building custom designs
  • DaisyUI - Tailwind CSS components
  • TRPC - TypeScript RPC framework
  • Vite - Next Generation Frontend Tooling
  • Firebase - Firestore, Authentication, Cloud Functions, Cloud Storage
  • DND Kit - A modern, lightweight, performant, accessible and extensible drag & drop toolkit for React
  • DevExtreme - JavaScript UI widgets for progressive web and hybrid apps

๐Ÿš€ Getting Started ๐Ÿš€

Prerequisites

Node.js and npm are required to run the project. You can download them from here. Also, you need to have a Firebase project with Firestore, Authentication and Cloud Storage enabled. You can create a new project from here.

Also for the notifications to work you need to have an Expo account and a project with a server token. You can create a new project from here.

Email delivery is handled by Resend. You need to create an account and get an API key from here.

Clone the repository

    git clone https://github.com/ptaushanov/festify-admin.git
    cd festify-admin
    
    cd client
    npm install

    cd ../server
    npm install

Configure the project

  1. Create a .env file inside the client & server folders and copy the contents from the example bellow. Fill in the values with your Firebase, Expo and Resend credentials.

For the client:

# Firebase configuration
VITE_API_KEY = 
VITE_AUTH_DOMAIN = 
VITE_PROJECT_ID = 
VITE_STORAGE_BUCKET = 
VITE_MESSAGING_SENDERID = 
VITE_APP_ID = 

# Server connection
VITE_SERVER_URL = "http://localhost:5000"

For the server:

API_KEY = 
AUTH_DOMAIN = 
PROJECT_ID = 
STORAGE_BUCKET = 
MESSAGING_SENDERID = 
APP_ID = 

RESEND_API_KEY = 
EXPO_ACCESS_TOKEN =
  1. Copy the serviceAccountKey.json file from your Firebase project and paste it inside the server folder. This file is used for the Firebase Admin SDK to authenticate with Firebase.

โš™๏ธ Running the project โš™๏ธ

Start the server

cd server
npm run dev

Start the client

cd client
npm run dev

โœ’๏ธ Authors โœ’๏ธ

๐Ÿ“„ License ๐Ÿ“„

This project is licensed under the MIT License - see the LICENSE.md file for details.

festify-admin's People

Contributors

ptaushanov avatar

Stargazers

 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.