The Pioneer, The Cooper Union's newspaper, has been in print since 1921 and is currently on Vol. 99, Issue 12. The newspaper operates on a biweekly schedule, appearing on racks at 41 Cooper Square, the Foundation building, and the residence hall. The newspaper includes content of various types including news, op-ed, and creative writing pieces. Currently, The Pioneer has a website on the domain pioneer.cooper.edu, but it is difficult to navigate and complex for an editorial team to manage.
For this project in ECE366-Spring2024, Vlad Bershchanskiy, Raymond Chi, and Ari Gebhardt are working to develop a new site for The Pioneer that is much more social, allowing users to submit and comment on articles.
The backend server and the database are running inside a Docker container.
To run locally: The backend is accessed through docker compose up --build
. The frontend runs locally through npm install
and npm start
.
To run tests, comment out the app service in docker-compose.yaml, run docker compose up --build
, comment out spring.datasource.url=jdbc:postgresql://db:5432/pioneer_db
in api/src/main/resources/application.properties, uncomment spring.datasource.url=jdbc:postgresql://localhost:5432/pioneer_db
, run mvn test
, run mvn jacoco:report
, and open api/target/jacoco-reports/index.html.
The Start page displays the masthead The Pioneer on the left side of the screen. A user has two options: to login with an existing account or create an account.
The Create Account page asks a user for standard information: a username, password, and email. Additionally, a user includes information important to life at The Cooper Union: position, major, and year of graduation. A short biography is available for a user to discuss their interests in terms of news, publishing, and all things writing.
The Home page displays the masthead The Pioneer in a large font at the top of the screen. A header bar houses two dropdown menus for a user to select which volume and issue they would like to read from. This way, the site can act as source for current news and an archive for past happenings at the institution. Furthermore, there is a search bar for users to locate specific subjects in writing across various volumes and issues. The right side of the header bar has buttons for submissions and a link to the most current issue's home page. Depending on a user's sadmin tatus, another button titled "For Editor" appears to create new issues.
Streamlining the submission process, this page allows users to submit their writing for publishing in the next issue of The Pioneer. A user enters their title, content, and additional media they'd like to include in the form of a saved file. The user selects a category for the type of content as well.
This page is dedicated to editors of the newspaper. Editors have additional functionality here and select which issue and volume they'd like to attach each piece to. They can click on inidividual articles and edit the content as they see fit, or add categories and contributors. After assigning an issue and volume number to a submission, an editor posts the issue with a click of a button on the screen.
Every article has a comments section. Here, users can post their reflections on the writing, connecting or debating other members of the larger Cooper community. Reactions and child comments are coming shortly in next month's update on the site.
The Pioneer website conforms to the Software Engineering Code of Ethics and Professional Practice. The following ten items from the list of software engineering ethics are but a small sample of The Pioneer's strict adherence to a professional and ethical standard of conduct.
1.08. Be encouraged to volunteer professional skills to good causes and contribute to public education concerning the discipline.
Vlad Bershchanskiy (ME'24), Raymond Chi (EE'25), and Ari Gebhardt (EE'25) are volunteering their professional skills in software to develop an updated website for The Pioneer that serves as an improved content management system split by volume and issue, allowing for archiving and documentation of newspaper content. This website will foster wider community engagement through comments on articles between students, faculty, staff, and alumni.
2.05. Keep private any confidential information gained in their professional work, where such confidentiality is consistent with the public interest and consistent with the law.
Firebase authentication has been implemented to maintain the privacy of any confidential information collected from contributers to The Pioneer, including but not limited to, username and password, email, major, graduating year, and other information concerning written submissions which is only visible to administrators of the newspaper.
2.07. Identify, document, and report significant issues of social concern, of which they are aware, in software or related documents, to the employer or the client.
A for-editor page has been implemented in the software for administrators to review documents submitted by users of the website to ensure that items of significant social concern are communicated with users and addressed in an appropriate manner for publishing to the website.
3.01. Strive for high quality, acceptable cost and a reasonable schedule, ensuring significant tradeoffs are clear to and accepted by the employer and the client, and are available for consideration by the user and the public.
A biweekly schedule for publishing to the website allots for a reasonable length of time for communication between editors and writers to produce and publish high quality content.
3.10. Ensure adequate testing, debugging, and review of software and related documents on which they work.
The service code has at least 50% of the code covered by unit tests to ensure adequate debugging and review of software.
4.03. Maintain professional objectivity with respect to any software or related documents they are asked to evaluate.
Administrators maintain professional objectivity when reviewing submissions to ensure that any bias is eliminated when it comes to the ordering or compiling of a new issue.
5.09. Ensure that there is a fair agreement concerning ownership of any software, processes, research, writing, or other intellectual property to which a software engineer has contributed.
A terms of service, privacy policy, and list of contacts are provided so users that interact with the newspaper are in agreement that the ownership of the software, writing, and other intellectual property is held by The Pioneer.
6.08. Take responsibility for detecting, correcting, and reporting errors in software and associated documents on which they work.
If any errors are detected or reported after the subsequent launch of the website, they will be corrected. Additionally, submissions can be altered before publishing if a correction is communicated to administrators.
The submissions are reviewed by editors on the for-editor page and are not published without review.
8.01. Further their knowledge of developments in the analysis, specification, design, development, maintenance and testing of software and related documents, together with the management of the development process.
The software engineers working on The Pioneer website have increased their knowledge of Postgres, Docker, React, and coding languages including SQL, Java, and Javascript, in the design and development of this project.
Enjoy the site!