GithubHelp home page GithubHelp logo

rohit-gohri / inno Goto Github PK

View Code? Open in Web Editor NEW
8.0 5.0 7.0 27.32 MB

A website for college festivals

Home Page: https://inno.fly.dev/

License: MIT License

JavaScript 31.23% CSS 12.34% HTML 1.44% Pug 54.91% Dockerfile 0.08%
express mongo mailgun nodejs jade mongodb inno nsit nsut expressjs

inno's Introduction

Inno - A fest website

The site has been deployed using Fly.io and MongoDB Atlas at https://inno.fly.dev/

Home Page

Events Page

The site features the following functions :

  1. Login/Register using FB and Local
  2. Automatic generation of unique IDs for all users on successful registration (INNO-ID)
  3. Admin and Event Manager(EM) accounts with special functions
  4. Create events and update operations for EMs
  5. Ability to register for events by users
  6. View participants and export to Excel for EMs
  7. Automatic mailing through Mailgun on registration
  8. Mass mailing to all registered users through Mailgun

Installation

Requirements

Steps

  1. Clone the project using git and cd into it:

    git clone https://github.com/rohit-gohri/inno.git
    cd inno
  2. Run npm install - this installs all the dependencies of the project (found in package.json) :

    npm install

Config File

There is a config/default.json config file that provides default value Add a production.json and development.json file in the config directory. These files are used to store API keys and various other variable configurations like : site-url, contact-form-email, etc. Only add the things you want to overwrite in default.json.

It needs to have the following format :

{
  "mailgun": {
    "auth": {
      "api_key": "<your-mailgun-api-key>",
      "domain": "<domain-registered-on-mailgun>"
    }
  },
  "url": "<domain-name-on-which-this-is-setup>",
  "hashids": {
    "secret": "<hash-secret-for-unique-id-generation>",
    "no_chars": 4,
    "chars": "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
  },
  "contactEmail": "<email-for-contact-form>",
  "dbhost": "<mongodb-host-url",
  "sessionSecret": "<session-secret>",
  "fb": {
    "clientID": "<FB-app-id-for-login>",
    "clientSecret": "<fb-app-secret>",
    "callbackURL": "<site-url> + /login/fb/callback"
  }
}

Mailgun API Key

This is used for sending emails. Signup and get your own key here: https://www.mailgun.com/email-api/

FB Client ID and Secrets

This is used for Login with Facebook. Create your own app and get your own key here: https://developers.facebook.com/docs/development/create-an-app/

Run

  • Development (localhost) - this will read overrides from config/development.json

    npm run dev
  • Development Watch Mode (uses nodemon)

    npm run dev:watch
  • Production - this will read overrides from config/production.json

    npm run start
  • Production PM2

    pm2 start ecosystem.config.js --env production

Admin Access

To get access to admin panel, you'll have to manually mark a user as is_admin: true in the DB. You'll need MongoDB Compass or other similar tool for it.

Click to expand detailed steps.
  1. Connect to DB

    image
  2. Select inno-site DB

    image
  3. Select accounts collection

    image
  4. Set is_admin: true for the required user

    image
  5. After that if you go to profile you'll have these extra buttons (also a button to add other event managers)

    image
  6. And if you are an Admin or an Event Manager (EM) you'll get access to edit event details and see participant info on event page

    image

Contributors

See Github Contributors: https://github.com/rohit-gohri/inno/graphs/contributors

Animations & Illustrations By Utkarsh Yadav: @utkarshyadav5

inno's People

Contributors

arorashu avatar dependabot[bot] avatar grownoutintern avatar karanchahal avatar nowismytime avatar ridhi28914 avatar rohit-95 avatar rohit-gohri avatar rohitmaurya-png avatar shivamyadav2512 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

inno's Issues

Photo ids not working

when a photo id is uploaded it shows failure and log outs the user
after which if uploaded it shows success but dose not take any effect

inno/routes/users.js

Line 166 in be50c61

user.photoId = '/uploads/photoids/' + req.file.filename;

replaced to :
user.photoId = path.join('/uploads/photoids/', ' req.file.filename');

i did'nt get any error in commandline

Procedure To run this locally on windows operating system

got following error after trying to run it

(node:12728) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 3)
(node:12728) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will 
terminate the Node.js process with a non-zero exit code.

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.