/ENACT

Digital Application for ENACT program

Primary LanguageEJSApache License 2.0Apache-2.0

ENACT digital platform

The Educational Network for Active Civic Transformation is a national program engaging undergraduates at colleges and universities in state-level legislative change by learning to work with legislators, staffers, and community organizations to advance policy. It is becoming a major voice in addressing challenges to American democracy by engaging young people around the country in civic activism built on knowledge, cooperation, justice and integrity.

Deployed at: ENACT digital platform

Login

For a sample tour, login via email: visitor@visitor.com; password: iam&&&avisitor (Remove &&&).

Installation

Use the package manager npm to install ENACT digital platform.

npm install

If you have nodemon installed use nodemon to start:

nodemon

Otherwise:

npm start

For local installation, please remember to:

  • have MongoDB pre-installed
  • visit localhost:3500, to change port number, go to /bin/www

Technology stack

  • Front End Technologies: EJS/Bootstrap/JQuery/Ajax
  • Back End Technologies: Node.js/Express.js/Passport.js
  • Database: MongoDB
  • Storage: AWS S3
  • Hosting: Heroku

Key Functions

Full-text Search: implemented using ElasticSearch-styled", supports autocomplete and key-word based results ranking

/resources/search/public/general: full-text search (open to public)
/resources/search/public/advanced: advanced search (open to public)

In-site Messages: in-side messages with email alert

/messages/view/all: notification center
...

Resource Management: support basic CRUD, "like" a resource, create collections, share collections

/resources/view/favorite: view all favorited resources
/resources/view/private: view all resources uploaded by yourself
...

Course Management: support basic CRUD, join a course, upload documents/videos to courses stored in AWS S3...

/courses: course CRUD & view all courses owned or enrolled
/course/view/:courseId: view a specific course
...

Profile Management: support basic CRUD, view faculty profile list

/profile/view/:userId: view a specific profile
/profiles/view/faculty: faculty list
...

Events Management: support basic CRUD

/events