priyanshu20 / Opportunity-Calendar-Backend

Opportunity Calendar is the one-stop place to refer important opportunites available in tech-space like newly posted jobs, internships, hackathons, tech-conferences, scholarhsips etc.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Opportunity Calendar

Opportunity Calendar is the one-stop place to refer important opportunities available in tech-space like newly posted jobs, internships, hackathons, tech-conferences, scholarships etc.

The frontend of the same project can be found here

Table of Contents

  1. Install
  2. Introduction
  3. Technology Stack
  4. Documentation
  5. Bugs and Feature Requests
  6. Contributing
  7. Copyright and license

Install

# clone the repository to your local machine
$ git clone https://github.com/<YOUR-GITHUB-USERNAME>/Opportunity-Calendar-Backend.git

# navigate to the project's directory 
$ cd Opportunity-Calendar-Backend

# install all the relevant (dev) dependencies using npm
$ npm install

# Copy .env.example to .env
$ It is recommended to install [MongoDB Compass](https://www.mongodb.com/try/download/compass) to visualize data in mongodb

# Start application
$ npm run start:dev

# Visit http://localhost:3030/ in your browser

Introduction

Opportunity Calendar provides instant information on newly posted opportunuties for techies. There are times when applicants miss deadlines or get to know about available opportunties only after the deadline of their application passes. Updates about following opportunities are available:
  • Full Time Job Opportunties
  • Internship Opportunties
  • Scholarships
  • Tech-Conferences
  • Coding Competitions
  • Hackathons

Technology Stack

  • Server Enviornment - NodeJS
  • Framework - ExpressJS
  • Database - MongoDB
  • Cloud database service - MongoDB Atlas

Documentation

Project Structure

We will structure our application using the controller, service, and, manager pattern so our app will be broken into the managers, services, and controllers. The Manager-Service-Controller pattern breaks up the business layer of the app into three distinct layers:

  1. The manager class handles getting data into and out of our data store. A manager is used between the service layer and the model layer. For example, in the opportunityManager you would create methods that write/read a opportunity to and from the database.
  2. The service class calls the manager class and can combine their data to form new, more complex business objects. It is an abstraction between the controller and the manager.
  3. A controller contains very little logic and is used to make calls to services.

Documenting API using JSDoc and Swagger

Bugs and Feature Requests

Have a bug or a feature request? Please first read the issue guidelines and search for existing and closed issues. If your problem or idea is not addressed yet, please open a new issue.

Contributing

We want contributing to Opportunity Calendar to be enjoyable and educational for everyone. We would love to have your contributions. To get started have a look at our documentation on contributing.

✨ Our Contributors ✨

Copyright and license

Code released under the MIT License.

About

Opportunity Calendar is the one-stop place to refer important opportunites available in tech-space like newly posted jobs, internships, hackathons, tech-conferences, scholarhsips etc.

License:MIT License


Languages

Language:JavaScript 92.6%Language:Vim Script 6.3%Language:Shell 1.1%