Giter Club home page Giter Club logo

exe's Introduction

exe

Build Status

Project for Texas State Computer Science Club

Installing & Running

This repository requires node.js, availible for free for all platforms on https://nodejs.org/en/.

After you have node.js installed, the repository can be installed with

npm install

and can be run with

node app.js

Please note that the server configuration requires a running MySQL server for the join page to work properly.

If you wish to develop for the site without a MySQL server (for testing page style, for example) you will need to change the line in config.js with

enabled: true

to

enabled: false

Using nodemon for development is recommended. More information can be found here.

Swig templates

This site uses the Swig templating engine for easy site maintainability.

The base template for the site can be found in template.html, and an example that uses the template can be found in swig_example.html.

For more information about Swig, please refer to the official documentation.

Testing

Want your shiny new commit to hit Heroku? Build faling? NO DEPLOY!

If you want your changes on live, it needs to pass our CI tests, which are ran using Grunt. Testing locally is easy, too:

    npm install -g grunt
    grunt

(Linux/OS X users may need to add sudo before the npm command, and Windows users will need to run the npm command in a shell with admin privleges.)

After you first run the npm install -g grunt command, all future tests can be done simpily by running grunt.

If the script finishes with Done, without errors. then it will be deployed automagically when you commit!

If it responds with Aborted due to warnings. then you need to fix your code before you push.

Remember, a green build status is a happy build status, so test before you push :D

exe's People

Contributors

bab178 avatar firdaus1 avatar kaylasayth avatar lgodz15 avatar lukevp avatar misspokeycat avatar ms1841 avatar rz1005 avatar rzuniga64 avatar wsadwsad avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

exe's Issues

Create Mailing Lists

We need a way to generate mailing lists so officers can easily send newsletters to the club.
There are a few really good platforms to do this on that we can leverage the APIs of.

Three good ones that come to mind:

  1. Mailchimp - free accounts can send to 1000 unique users at once, very nice looking emails
  2. Google Groups - free, extremely powerful for announcements, leverages Google APIs
  3. Postman - don't know much about, but have used in past and it worked pretty good

Thoughts?

Create favicon.ico

We need a favicon for our pages. A favicon is the little 15x15 icon that shows up on your tabs, and if you bookmark the page.

Move all static content to separate "static" folder

It is generally bad practice to have all the static content in the root of the repository. Could we move all the html files and the CSS and Scripts directories to a folder named "static" instead of placing the files in the root?

Add "link chain" to forum posts

Navigating the forum is a bit clunky - the forum path should be visible on each post in a link chain that looks like this:

EXE Forums > Topic Name > Thread name

where EXE Forums links to /forums and Topic Name links to /forums/Topic Name. (Thread name shouldn't need to navigate to itself, as you would already be on that page.)

Remove routes from app.js

Routes should be in separate files pertaining to the specific functionality they provide. For instance, forum routes should all be placed in a forums.js file, payments should all be in a payments.js file etc. and they should be included in the main app.

Main Forums page should match style of topics pages

Topic pages have the name of the last poster and the total reply count for each thread.

The main forum page should have a link to the last updated thread within each topic, the person to last post in that thread, as well as the total thread count for the topic. View count could also be a nice feature, although that has not been implemented anywhere yet.

Prompt additional information with Facebook signup

Facebook logins fetch the user's email and name, and serve as a replacement for a username and password. However, additional information, such as shirt sizes, graduation dates, and classifications are not prompted during signup as with Facebook logins.

Instead of automatically logging in the Facebook user and rerouting them to home, the site should redirect to a "additional info" page where we can capture the rest of this information.

Move from Swig to Angular.js?

Swig is nice, but there are some features of Angular I really would like to have - in particular, signups and logins without leaving the page you are on, more responsive pages (especially for the career pages and the forums), and if we deliver JSON data to the website for use in angular, we can easily use the same "API" to interface with an app (perhaps in the future for our appdev team?)

However, the site would have to be converted to use Angular templating instead of Swig templating. Would it be worth it to make the switch?

Add Facebook option to signup page

It is easy to find the login with Facebook option if the login button is clicked, but can easily be missed if you go to the signup page - a link to "sign up with Facebook" should be on the signup page

Create site wide preferences page

At least so a user can edit their email preferences and opt-out of the newsletter if they so chose to.
Also might not be bad to have a forums preferences page, such as number of posts to display per page, forum display name etc.

Add payment links to site

As discussed in #34, we should either add this to a sidebar (per #37) or a drop down on username mouseover. The current payment page is at /pay, and really just needs to be linked to somewhere on the site.

Prompt dues payment after signup

Upon initial signup, the user should be redirected to a "success" page, and there should be a link on that page to "pay dues now" (redirects to /pay) and "skip for now" (redirects to /). This should hopefully get people to pay dues immediately after making an account.

Bootstrap or remove sidebars

The side navigation bar is unused in many of our pages, and looks bad on mobile. We need to either remove the sidebars completely, or make them responsive with Bootstrap.

Create events from the site

We have a nice calendar page, but it would be really cool if we had a way for officers to create events on the website.

Career pages should have own folder

We have so many pages under career that they should be in their own folder, so pages would be like /career/phoneinterview.html and what not.

Implement Project Pages

I have a few ideas for how to do this:

  1. Using a homebrewed CMS on our site
  2. Using a Wiki platform such as Mediawiki or Confluence
  3. Not implementing anything, and letting groups create their own site on platforms such as Wordpress or Blogger and linking to those sites

Thoughts?

Refactor app.js

App.js needs a refactor.

In particular, the following ought to be done:

  1. Authentication methods should be moved to a separate module.
  2. All routes pertaining to a certain feature with more then just static code (i.e. forums, payments, calendar) should be moved to separate files.
  3. Tests ought to be written for ALL non-static routes for ALL desired functionality..
  4. A full code review should be done of existing code, and comments should be added where necessary to better explain the app.

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.